// $ANTLR 3.4 C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g 2012-05-05 13:59:59

package com.plt.w2w;
import java.util.Map;
import java.util.HashMap;
import java.io.*;
import java.util.ArrayList;
import java.io.PrintWriter;
import java.text.ParseException;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.util.Set;
import java.util.Iterator;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class GrammarParser extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "AGE", "AND", "ASSIGNMENT_OP", "CATEGORY", "COLORT", "CONDITIONAL_OP", "CREATET", "DATE", "DATET", "DELIMITER", "ELSE", "ENDDATE", "ENDOFSTMT", "ENDTIME", "EVENT", "EXPR", "FOREACH", "GARMENT", "GENERATEOUTFIT", "HUMIDITY", "IDENTIFIER", "IF", "INCLUDE", "INT", "ITEMT", "LEFTCURLY", "LEFTPARAN", "MAIN", "MAKERT", "NUMBER", "OCCUPATION", "OR", "PREFERENCET", "PRINTT", "QUOTE", "READT", "REJTOK", "RETTOK", "RIGHTCURLY", "RIGHTPARAN", "SHADET", "STARTDATE", "STARTTIME", "STRING", "STRINGTOK", "TEMPERATURE", "USER", "USET", "VOID", "WARDROBET", "WEATHER", "WEIGHT", "WS", "' in '", "'+'", "','", "'1'", "'2'", "'3'", "'for each '"
    };

    public static final int EOF=-1;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int T__59=59;
    public static final int T__60=60;
    public static final int T__61=61;
    public static final int T__62=62;
    public static final int T__63=63;
    public static final int AGE=4;
    public static final int AND=5;
    public static final int ASSIGNMENT_OP=6;
    public static final int CATEGORY=7;
    public static final int COLORT=8;
    public static final int CONDITIONAL_OP=9;
    public static final int CREATET=10;
    public static final int DATE=11;
    public static final int DATET=12;
    public static final int DELIMITER=13;
    public static final int ELSE=14;
    public static final int ENDDATE=15;
    public static final int ENDOFSTMT=16;
    public static final int ENDTIME=17;
    public static final int EVENT=18;
    public static final int EXPR=19;
    public static final int FOREACH=20;
    public static final int GARMENT=21;
    public static final int GENERATEOUTFIT=22;
    public static final int HUMIDITY=23;
    public static final int IDENTIFIER=24;
    public static final int IF=25;
    public static final int INCLUDE=26;
    public static final int INT=27;
    public static final int ITEMT=28;
    public static final int LEFTCURLY=29;
    public static final int LEFTPARAN=30;
    public static final int MAIN=31;
    public static final int MAKERT=32;
    public static final int NUMBER=33;
    public static final int OCCUPATION=34;
    public static final int OR=35;
    public static final int PREFERENCET=36;
    public static final int PRINTT=37;
    public static final int QUOTE=38;
    public static final int READT=39;
    public static final int REJTOK=40;
    public static final int RETTOK=41;
    public static final int RIGHTCURLY=42;
    public static final int RIGHTPARAN=43;
    public static final int SHADET=44;
    public static final int STARTDATE=45;
    public static final int STARTTIME=46;
    public static final int STRING=47;
    public static final int STRINGTOK=48;
    public static final int TEMPERATURE=49;
    public static final int USER=50;
    public static final int USET=51;
    public static final int VOID=52;
    public static final int WARDROBET=53;
    public static final int WEATHER=54;
    public static final int WEIGHT=55;
    public static final int WS=56;

    // delegates
    public Parser[] getDelegates() {
        return new Parser[] {};
    }

    // delegators


    public GrammarParser(TokenStream input) {
        this(input, new RecognizerSharedState());
    }
    public GrammarParser(TokenStream input, RecognizerSharedState state) {
        super(input, state);
    }

    public String[] getTokenNames() { return GrammarParser.tokenNames; }
    public String getGrammarFileName() { return "C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g"; }


      final int TYPE =0;
      final int VALUE =1;
      public Map<String, String[]> symbolTable = new HashMap<String, String[]>();
      public ArrayList<String> mainFuncString = new ArrayList<String>();
      public ArrayList<Garment> garments = new ArrayList<Garment>();
      String date ;
      SimpleDateFormat sdf ;
      java.util.Date checkDate;
       int year = Calendar.getInstance().get(Calendar.YEAR);



    // $ANTLR start "start"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:37:1: start : ( wardrobeCreation mainOptional | mainProgram );
    public final void start() throws RecognitionException {
        String wardrobeCreation1 =null;

        String mainOptional2 =null;

        String mainProgram3 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:38:3: ( wardrobeCreation mainOptional | mainProgram )
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0==CREATET) ) {
                alt1=1;
            }
            else if ( ((LA1_0 >= USET && LA1_0 <= VOID)) ) {
                alt1=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 1, 0, input);

                throw nvae;

            }
            switch (alt1) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:39:3: wardrobeCreation mainOptional
                    {
                    pushFollow(FOLLOW_wardrobeCreation_in_start49);
                    wardrobeCreation1=wardrobeCreation();

                    state._fsp--;


                    pushFollow(FOLLOW_mainOptional_in_start51);
                    mainOptional2=mainOptional();

                    state._fsp--;



                    //        for(int i=0; i<garments.size(); i++)
                    //          garments.get(i).printNicely();
                            PrintWriter pw;
                                try {
                                  pw = new PrintWriter("TheProgram.java");
                                  pw.print("package com.plt.w2w; \n");
                                  pw.print("import java.util.ArrayList;\n");
                                  pw.print("import java.util.Scanner;\n");
                                  pw.print("import java.text.SimpleDateFormat;\n");
                                  pw.print("import java.text.ParseException;\n");
                                  pw.print("import java.util.Calendar;\n");
                                  pw.print("public class TheProgram { \n");
                                  pw.print("ArrayList<Garment> _garments = new ArrayList<Garment>(); \n");
                                  pw.print("ArrayList<String> _wardrobeNames = new ArrayList<String>(); \n");
                                  pw.print("String _date;\n");
                                  pw.print("SimpleDateFormat _sdf = new SimpleDateFormat(\"MM/dd/yyyy\"); \n");
                                  pw.print("String _input;\n");
                                  pw.print("BackEnd _backEnd = new BackEnd();\n");
                                  Set abc = symbolTable.keySet();
                                   Iterator it = abc.iterator();
                                   while(it.hasNext()){
                          
                                      String variableName = (String) it.next();
                                      String[] array = symbolTable.get(variableName);
                                      String dataType = array[0];
                                      if(dataType.equalsIgnoreCase("date")){
                                          pw.print("java.util.Date " + variableName + "; \n");
                                      }
                                      else if(dataType.equalsIgnoreCase("int")) {
                                          pw.print("int " + variableName + "; \n");
                                      }
                                      else if(dataType.equalsIgnoreCase("string")){
                                          pw.print("String " + variableName + "; \n");
                                      }
                                      System.out.println(dataType + " " + variableName);
                                  }
                                  pw.print(wardrobeCreation1);
                                  pw.print("\n");
                                  pw.print(mainOptional2);
                                  pw.print("\npublic static void main(String args[]){\n");  
                                  pw.print("TheProgram obj = new TheProgram(); \n");    
                                  pw.print("obj.createWardrobeBackEnd(); \n");
                                  pw.print("obj.mainBackEnd(); \n");
                                  pw.print("}\n}");
                                  pw.close();
                                } catch (Exception e) {
                                  e.printStackTrace();
                                }
                    //            Set abc = symbolTable.keySet();
                    //            Iterator it = abc.iterator();
                    //            while(it.hasNext()){
                    //      
                    //                 String variableName = (String) it.next();
                    //                 String[] array = symbolTable.get(variableName);
                    //                 String dataType = array[0];
                    //                 System.out.println(dataType + " " + variableName);
                    //            }
                          //call the java class handling wardrobe creation
                    //      Wardrobe obj = new Wardrobe();
                    //      obj.create(garments,wardrobeCreation1);
                          
                        

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:103:5: mainProgram
                    {
                    pushFollow(FOLLOW_mainProgram_in_start63);
                    mainProgram3=mainProgram();

                    state._fsp--;



                          System.out.println(">>>>>>>>WOHOOOOOO<<<<<<<<<< \n" + mainProgram3);
                          PrintWriter pw;
                                try {
                                  pw = new PrintWriter("TheProgram.java");
                                  pw.print("package com.plt.w2w; \n");
                                  pw.print("import java.util.ArrayList;\n");
                                  pw.print("import java.util.Scanner;\n");
                                  pw.print("import java.text.SimpleDateFormat;\n");
                                  pw.print("import java.text.ParseException;\n");
                                  pw.print("import java.util.Calendar;\n");
                                  pw.print("public class TheProgram {");
                                  pw.print("BackEnd _backEnd = new BackEnd();\n");
                                  pw.print("ArrayList<Garment> _garments = new ArrayList<Garment>(); \n");
                                  pw.print("ArrayList<String> _wardrobeNames = new ArrayList<String>(); \n");
                                  pw.print("String _date;\n");
                                  pw.print("SimpleDateFormat _sdf = new SimpleDateFormat(\"MM/dd/yyyy\"); \n");
                                  pw.print("String _input;\n");
                                 
                                  
                                  pw.print(mainProgram3);
                                  pw.print("\n\tpublic static void main(){\n");
                                  pw.print("mainBackEnd();");
                                  pw.print("\n\t}\n}");
                                  pw.close();
                                } catch (Exception e) {
                                  // TODO Auto-generated catch block
                                  e.printStackTrace();
                                }
                                
                    //      MainFuncBackEnd obj = new MainFuncBackEnd(symbolTable,mainFuncString);
                    //      obj.backEnd();
                          //call class handling
                        

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "start"



    // $ANTLR start "mainOptional"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:140:1: mainOptional returns [String val] : ( mainProgram |);
    public final String mainOptional() throws RecognitionException {
        String val = null;


        String mainProgram4 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:141:3: ( mainProgram |)
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( ((LA2_0 >= USET && LA2_0 <= VOID)) ) {
                alt2=1;
            }
            else if ( (LA2_0==EOF) ) {
                alt2=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;

            }
            switch (alt2) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:142:3: mainProgram
                    {
                    pushFollow(FOLLOW_mainProgram_in_mainOptional90);
                    mainProgram4=mainProgram();

                    state._fsp--;



                          val = mainProgram4;
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:147:3: 
                    {

                          val = "";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "mainOptional"



    // $ANTLR start "wardrobeCreation"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:152:1: wardrobeCreation returns [String val] : createStatement LEFTCURLY items RIGHTCURLY ;
    public final String wardrobeCreation() throws RecognitionException {
        String val = null;


        String createStatement5 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:153:3: ( createStatement LEFTCURLY items RIGHTCURLY )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:154:3: createStatement LEFTCURLY items RIGHTCURLY
            {
            pushFollow(FOLLOW_createStatement_in_wardrobeCreation122);
            createStatement5=createStatement();

            state._fsp--;


            match(input,LEFTCURLY,FOLLOW_LEFTCURLY_in_wardrobeCreation124); 

            pushFollow(FOLLOW_items_in_wardrobeCreation126);
            items();

            state._fsp--;


            match(input,RIGHTCURLY,FOLLOW_RIGHTCURLY_in_wardrobeCreation128); 


                  String createCode = "";
                  for(int i=0;i<garments.size();i++){
                      Garment g = (Garment) garments.get(i);
                      createCode += "_garments.add(new Garment(\"" + g.getType() + "\",\"" + g.getWeight() + "\",\"" + g.getMaker() + "\",\"" +
                                            g.getColor() + "\",\"" + g.getShade() + "\",\"" + g.getPreference() + "\"));";
                      createCode += "\n";
                  }
                  val = "\npublic void createWardrobeBackEnd() {\n" 
                  +  createCode +
                   "\n" +
                   "Wardrobe obj = new Wardrobe(); \n" + 
                   "obj.create(_garments,\"" + createStatement5 + "\");\n}"
                   ;
              

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "wardrobeCreation"



    // $ANTLR start "createStatement"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:172:1: createStatement returns [String val] : CREATET WARDROBET wardrobeName ENDOFSTMT ;
    public final String createStatement() throws RecognitionException {
        String val = null;


        GrammarParser.wardrobeName_return wardrobeName6 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:173:3: ( CREATET WARDROBET wardrobeName ENDOFSTMT )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:174:3: CREATET WARDROBET wardrobeName ENDOFSTMT
            {
            match(input,CREATET,FOLLOW_CREATET_in_createStatement152); 

            match(input,WARDROBET,FOLLOW_WARDROBET_in_createStatement154); 

            pushFollow(FOLLOW_wardrobeName_in_createStatement156);
            wardrobeName6=wardrobeName();

            state._fsp--;


            match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_createStatement158); 


                  val = (wardrobeName6!=null?input.toString(wardrobeName6.start,wardrobeName6.stop):null);
              

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "createStatement"



    // $ANTLR start "items"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:180:1: items : item items1 ;
    public final void items() throws RecognitionException {
        Garment item7 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:181:3: ( item items1 )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:182:3: item items1
            {
            pushFollow(FOLLOW_item_in_items180);
            item7=item();

            state._fsp--;


            pushFollow(FOLLOW_items1_in_items184);
            items1();

            state._fsp--;



                garments.add(item7);
              

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "items"



    // $ANTLR start "items1"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:188:1: items1 : ( item items1 |);
    public final void items1() throws RecognitionException {
        Garment item8 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:189:3: ( item items1 |)
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==LEFTCURLY) ) {
                alt3=1;
            }
            else if ( (LA3_0==RIGHTCURLY) ) {
                alt3=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;

            }
            switch (alt3) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:190:3: item items1
                    {
                    pushFollow(FOLLOW_item_in_items1204);
                    item8=item();

                    state._fsp--;


                    pushFollow(FOLLOW_items1_in_items1207);
                    items1();

                    state._fsp--;



                        garments.add(item8);
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:195:3: 
                    {
                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "items1"



    // $ANTLR start "item"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:197:1: item returns [Garment garm] : LEFTCURLY type category weight color shade maker preference RIGHTCURLY ;
    public final Garment item() throws RecognitionException {
        Garment garm = null;


        String type9 =null;

        String weight10 =null;

        String maker11 =null;

        String color12 =null;

        String shade13 =null;

        String preference14 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:198:3: ( LEFTCURLY type category weight color shade maker preference RIGHTCURLY )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:199:3: LEFTCURLY type category weight color shade maker preference RIGHTCURLY
            {
            match(input,LEFTCURLY,FOLLOW_LEFTCURLY_in_item234); 

            pushFollow(FOLLOW_type_in_item238);
            type9=type();

            state._fsp--;


            pushFollow(FOLLOW_category_in_item240);
            category();

            state._fsp--;


            pushFollow(FOLLOW_weight_in_item242);
            weight10=weight();

            state._fsp--;


            pushFollow(FOLLOW_color_in_item244);
            color12=color();

            state._fsp--;


            pushFollow(FOLLOW_shade_in_item246);
            shade13=shade();

            state._fsp--;


            pushFollow(FOLLOW_maker_in_item248);
            maker11=maker();

            state._fsp--;


            pushFollow(FOLLOW_preference_in_item250);
            preference14=preference();

            state._fsp--;


            match(input,RIGHTCURLY,FOLLOW_RIGHTCURLY_in_item252); 


                Garment g = new Garment(type9, weight10, maker11, color12, shade13, preference14);
                garm = g;
            //      String item = "garmemts.add(new Garment(\"" + type9 + "\",\"" + weight10 + "\",\"" + maker11 + "\",\"" +
            //                     color12 + "\",\"" + shade13 + "\",\"" + preference14 + "\"));"
            //      garm = item;            
              

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return garm;
    }
    // $ANTLR end "item"



    // $ANTLR start "type"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:209:1: type returns [String val] : ITEMT ASSIGNMENT_OP value ENDOFSTMT ;
    public final String type() throws RecognitionException {
        String val = null;


        GrammarParser.value_return value15 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:210:3: ( ITEMT ASSIGNMENT_OP value ENDOFSTMT )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:211:3: ITEMT ASSIGNMENT_OP value ENDOFSTMT
            {
            match(input,ITEMT,FOLLOW_ITEMT_in_type275); 

            match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_type277); 

            pushFollow(FOLLOW_value_in_type279);
            value15=value();

            state._fsp--;


            match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_type281); 


                val = (value15!=null?input.toString(value15.start,value15.stop):null);
              

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "type"



    // $ANTLR start "category"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:217:1: category returns [String val] : ( ITEMT ASSIGNMENT_OP value ENDOFSTMT |);
    public final String category() throws RecognitionException {
        String val = null;


        GrammarParser.value_return value16 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:218:3: ( ITEMT ASSIGNMENT_OP value ENDOFSTMT |)
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==ITEMT) ) {
                alt4=1;
            }
            else if ( (LA4_0==COLORT||LA4_0==MAKERT||LA4_0==PREFERENCET||LA4_0==RIGHTCURLY||LA4_0==SHADET||LA4_0==WEIGHT) ) {
                alt4=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;

            }
            switch (alt4) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:219:3: ITEMT ASSIGNMENT_OP value ENDOFSTMT
                    {
                    match(input,ITEMT,FOLLOW_ITEMT_in_category308); 

                    match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_category310); 

                    pushFollow(FOLLOW_value_in_category312);
                    value16=value();

                    state._fsp--;


                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_category314); 


                        val = (value16!=null?input.toString(value16.start,value16.stop):null);
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:224:3: 
                    {

                        val = "";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "category"



    // $ANTLR start "weight"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:229:1: weight returns [String val] : ( WEIGHT ASSIGNMENT_OP value ENDOFSTMT |);
    public final String weight() throws RecognitionException {
        String val = null;


        GrammarParser.value_return value17 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:230:3: ( WEIGHT ASSIGNMENT_OP value ENDOFSTMT |)
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==WEIGHT) ) {
                alt5=1;
            }
            else if ( (LA5_0==COLORT||LA5_0==MAKERT||LA5_0==PREFERENCET||LA5_0==RIGHTCURLY||LA5_0==SHADET) ) {
                alt5=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;

            }
            switch (alt5) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:231:3: WEIGHT ASSIGNMENT_OP value ENDOFSTMT
                    {
                    match(input,WEIGHT,FOLLOW_WEIGHT_in_weight349); 

                    match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_weight351); 

                    pushFollow(FOLLOW_value_in_weight353);
                    value17=value();

                    state._fsp--;


                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_weight355); 


                        val = (value17!=null?input.toString(value17.start,value17.stop):null);
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:236:3: 
                    {

                        val = "";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "weight"



    // $ANTLR start "color"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:241:1: color returns [String val] : ( COLORT ASSIGNMENT_OP value ENDOFSTMT |);
    public final String color() throws RecognitionException {
        String val = null;


        GrammarParser.value_return value18 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:242:3: ( COLORT ASSIGNMENT_OP value ENDOFSTMT |)
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==COLORT) ) {
                alt6=1;
            }
            else if ( (LA6_0==MAKERT||LA6_0==PREFERENCET||LA6_0==RIGHTCURLY||LA6_0==SHADET) ) {
                alt6=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;

            }
            switch (alt6) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:243:3: COLORT ASSIGNMENT_OP value ENDOFSTMT
                    {
                    match(input,COLORT,FOLLOW_COLORT_in_color390); 

                    match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_color392); 

                    pushFollow(FOLLOW_value_in_color394);
                    value18=value();

                    state._fsp--;


                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_color396); 


                        val = (value18!=null?input.toString(value18.start,value18.stop):null);
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:248:3: 
                    {

                        val = "";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "color"



    // $ANTLR start "shade"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:253:1: shade returns [String val] : ( SHADET ASSIGNMENT_OP value ENDOFSTMT |);
    public final String shade() throws RecognitionException {
        String val = null;


        GrammarParser.value_return value19 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:254:3: ( SHADET ASSIGNMENT_OP value ENDOFSTMT |)
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==SHADET) ) {
                alt7=1;
            }
            else if ( (LA7_0==MAKERT||LA7_0==PREFERENCET||LA7_0==RIGHTCURLY) ) {
                alt7=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;

            }
            switch (alt7) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:255:3: SHADET ASSIGNMENT_OP value ENDOFSTMT
                    {
                    match(input,SHADET,FOLLOW_SHADET_in_shade429); 

                    match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_shade431); 

                    pushFollow(FOLLOW_value_in_shade433);
                    value19=value();

                    state._fsp--;


                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_shade435); 


                        val = (value19!=null?input.toString(value19.start,value19.stop):null);
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:260:3: 
                    {

                        val = "";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "shade"



    // $ANTLR start "maker"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:265:1: maker returns [String val] : ( MAKERT ASSIGNMENT_OP value ENDOFSTMT |);
    public final String maker() throws RecognitionException {
        String val = null;


        GrammarParser.value_return value20 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:266:3: ( MAKERT ASSIGNMENT_OP value ENDOFSTMT |)
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==MAKERT) ) {
                alt8=1;
            }
            else if ( (LA8_0==PREFERENCET||LA8_0==RIGHTCURLY) ) {
                alt8=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;

            }
            switch (alt8) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:267:3: MAKERT ASSIGNMENT_OP value ENDOFSTMT
                    {
                    match(input,MAKERT,FOLLOW_MAKERT_in_maker468); 

                    match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_maker470); 

                    pushFollow(FOLLOW_value_in_maker472);
                    value20=value();

                    state._fsp--;


                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_maker474); 


                        val = (value20!=null?input.toString(value20.start,value20.stop):null);
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:272:3: 
                    {

                        val = "";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "maker"



    // $ANTLR start "preference"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:277:1: preference returns [String val] : ( PREFERENCET ASSIGNMENT_OP prefRange ENDOFSTMT |);
    public final String preference() throws RecognitionException {
        String val = null;


        GrammarParser.prefRange_return prefRange21 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:278:3: ( PREFERENCET ASSIGNMENT_OP prefRange ENDOFSTMT |)
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==PREFERENCET) ) {
                alt9=1;
            }
            else if ( (LA9_0==RIGHTCURLY) ) {
                alt9=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 0, input);

                throw nvae;

            }
            switch (alt9) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:279:3: PREFERENCET ASSIGNMENT_OP prefRange ENDOFSTMT
                    {
                    match(input,PREFERENCET,FOLLOW_PREFERENCET_in_preference507); 

                    match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_preference509); 

                    pushFollow(FOLLOW_prefRange_in_preference511);
                    prefRange21=prefRange();

                    state._fsp--;


                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_preference513); 


                        val = (prefRange21!=null?input.toString(prefRange21.start,prefRange21.stop):null);
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:284:3: 
                    {

                        val = "2";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "preference"



    // $ANTLR start "mainProgram"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:289:1: mainProgram returns [String val] : header mainDecl LEFTCURLY lines runCommand RIGHTCURLY ;
    public final String mainProgram() throws RecognitionException {
        String val = null;


        String mainDecl22 =null;

        String header23 =null;

        String lines24 =null;

        String runCommand25 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:290:3: ( header mainDecl LEFTCURLY lines runCommand RIGHTCURLY )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:291:3: header mainDecl LEFTCURLY lines runCommand RIGHTCURLY
            {
            pushFollow(FOLLOW_header_in_mainProgram547);
            header23=header();

            state._fsp--;


            pushFollow(FOLLOW_mainDecl_in_mainProgram549);
            mainDecl22=mainDecl();

            state._fsp--;


            match(input,LEFTCURLY,FOLLOW_LEFTCURLY_in_mainProgram551); 

            pushFollow(FOLLOW_lines_in_mainProgram553);
            lines24=lines();

            state._fsp--;


            pushFollow(FOLLOW_runCommand_in_mainProgram555);
            runCommand25=runCommand();

            state._fsp--;


            match(input,RIGHTCURLY,FOLLOW_RIGHTCURLY_in_mainProgram557); 


                val = mainDecl22 + "{\n" + header23 +  "Scanner _s = new Scanner(System.in);\n"
                + lines24 + runCommand25 + "}";
              

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "mainProgram"



    // $ANTLR start "header"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:298:1: header returns [String val] : ( USET WARDROBET wardrobeNames ENDOFSTMT |);
    public final String header() throws RecognitionException {
        String val = null;


        String wardrobeNames26 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:299:3: ( USET WARDROBET wardrobeNames ENDOFSTMT |)
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==USET) ) {
                alt10=1;
            }
            else if ( (LA10_0==VOID) ) {
                alt10=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 10, 0, input);

                throw nvae;

            }
            switch (alt10) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:300:3: USET WARDROBET wardrobeNames ENDOFSTMT
                    {
                    match(input,USET,FOLLOW_USET_in_header580); 

                    match(input,WARDROBET,FOLLOW_WARDROBET_in_header582); 

                    pushFollow(FOLLOW_wardrobeNames_in_header584);
                    wardrobeNames26=wardrobeNames();

                    state._fsp--;


                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_header586); 


                    //    val = "//Wardrobe to be used: "+ wardrobeNames26 + "\n";
                          val = "";
                        String[] wardrobeNames = wardrobeNames26.split(",");
                        for(int i = 0; i< wardrobeNames.length;i++){
                            val+= "_wardrobeNames.add(\"" + wardrobeNames[i] + "\"); \n";
                        }
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:310:3: 
                    {

                        val = "_wardrobeNames.add(\"_default\"); \n";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "header"



    // $ANTLR start "wardrobeNames"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:315:1: wardrobeNames returns [String val] : wardrobeName wardrobeNames1 ;
    public final String wardrobeNames() throws RecognitionException {
        String val = null;


        GrammarParser.wardrobeName_return wardrobeName27 =null;

        String wardrobeNames128 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:316:3: ( wardrobeName wardrobeNames1 )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:317:3: wardrobeName wardrobeNames1
            {
            pushFollow(FOLLOW_wardrobeName_in_wardrobeNames620);
            wardrobeName27=wardrobeName();

            state._fsp--;


            pushFollow(FOLLOW_wardrobeNames1_in_wardrobeNames622);
            wardrobeNames128=wardrobeNames1();

            state._fsp--;



            //       System.out.println("text2: "+(wardrobeName27!=null?input.toString(wardrobeName27.start,wardrobeName27.stop):null));
                   val = (wardrobeName27!=null?input.toString(wardrobeName27.start,wardrobeName27.stop):null) + "," + wardrobeNames128 ;
                   val = val.substring(0, val.length()-1);
                

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "wardrobeNames"



    // $ANTLR start "wardrobeNames1"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:325:1: wardrobeNames1 returns [String val] : ( '+' wardrobeName w1= wardrobeNames1 |);
    public final String wardrobeNames1() throws RecognitionException {
        String val = null;


        String w1 =null;

        GrammarParser.wardrobeName_return wardrobeName29 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:326:3: ( '+' wardrobeName w1= wardrobeNames1 |)
            int alt11=2;
            int LA11_0 = input.LA(1);

            if ( (LA11_0==58) ) {
                alt11=1;
            }
            else if ( (LA11_0==ENDOFSTMT) ) {
                alt11=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 11, 0, input);

                throw nvae;

            }
            switch (alt11) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:327:3: '+' wardrobeName w1= wardrobeNames1
                    {
                    match(input,58,FOLLOW_58_in_wardrobeNames1647); 

                    pushFollow(FOLLOW_wardrobeName_in_wardrobeNames1649);
                    wardrobeName29=wardrobeName();

                    state._fsp--;


                    pushFollow(FOLLOW_wardrobeNames1_in_wardrobeNames1653);
                    w1=wardrobeNames1();

                    state._fsp--;



                    //      System.out.println("text: "+(wardrobeName29!=null?input.toString(wardrobeName29.start,wardrobeName29.stop):null));
                           val = (wardrobeName29!=null?input.toString(wardrobeName29.start,wardrobeName29.stop):null) + "," + w1;
                       

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:333:3: 
                    {
                     val = "";

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "wardrobeNames1"



    // $ANTLR start "mainDecl"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:336:1: mainDecl returns [String val] : VOID MAIN LEFTPARAN RIGHTPARAN ;
    public final String mainDecl() throws RecognitionException {
        String val = null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:337:3: ( VOID MAIN LEFTPARAN RIGHTPARAN )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:338:3: VOID MAIN LEFTPARAN RIGHTPARAN
            {
            match(input,VOID,FOLLOW_VOID_in_mainDecl685); 

            match(input,MAIN,FOLLOW_MAIN_in_mainDecl687); 

            match(input,LEFTPARAN,FOLLOW_LEFTPARAN_in_mainDecl689); 

            match(input,RIGHTPARAN,FOLLOW_RIGHTPARAN_in_mainDecl691); 


                  val = "public void mainBackEnd()\n";
               

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "mainDecl"



    // $ANTLR start "lines"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:345:1: lines returns [String val] : ( line l1= lines |);
    public final String lines() throws RecognitionException {
        String val = null;


        String l1 =null;

        String line30 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:346:3: ( line l1= lines |)
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==DATET||(LA12_0 >= IDENTIFIER && LA12_0 <= IF)||LA12_0==INT||LA12_0==PRINTT||(LA12_0 >= READT && LA12_0 <= REJTOK)||LA12_0==STRING||LA12_0==63) ) {
                alt12=1;
            }
            else if ( (LA12_0==GENERATEOUTFIT||LA12_0==RIGHTCURLY) ) {
                alt12=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 12, 0, input);

                throw nvae;

            }
            switch (alt12) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:347:3: line l1= lines
                    {
                    pushFollow(FOLLOW_line_in_lines718);
                    line30=line();

                    state._fsp--;


                    pushFollow(FOLLOW_lines_in_lines722);
                    l1=lines();

                    state._fsp--;



                        val = line30 + "\n" + l1;
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:352:3: 
                    {
                     val = "" ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "lines"



    // $ANTLR start "line"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:355:1: line returns [String val] : ( assignmentStatement | 'for each ' GARMENT ' in ' WARDROBET LEFTCURLY lines RIGHTCURLY | IF expr LEFTCURLY lines RIGHTCURLY optional_tail | REJTOK ENDOFSTMT | READT LEFTPARAN RIGHTPARAN ENDOFSTMT | PRINTT LEFTPARAN printargs RIGHTPARAN ENDOFSTMT );
    public final String line() throws RecognitionException {
        String val = null;


        String assignmentStatement31 =null;

        String lines32 =null;

        String expr33 =null;

        String lines34 =null;

        String optional_tail35 =null;

        String printargs36 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:356:4: ( assignmentStatement | 'for each ' GARMENT ' in ' WARDROBET LEFTCURLY lines RIGHTCURLY | IF expr LEFTCURLY lines RIGHTCURLY optional_tail | REJTOK ENDOFSTMT | READT LEFTPARAN RIGHTPARAN ENDOFSTMT | PRINTT LEFTPARAN printargs RIGHTPARAN ENDOFSTMT )
            int alt13=6;
            switch ( input.LA(1) ) {
            case DATET:
            case IDENTIFIER:
            case INT:
            case STRING:
                {
                alt13=1;
                }
                break;
            case 63:
                {
                alt13=2;
                }
                break;
            case IF:
                {
                alt13=3;
                }
                break;
            case REJTOK:
                {
                alt13=4;
                }
                break;
            case READT:
                {
                alt13=5;
                }
                break;
            case PRINTT:
                {
                alt13=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 13, 0, input);

                throw nvae;

            }

            switch (alt13) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:357:4: assignmentStatement
                    {
                    pushFollow(FOLLOW_assignmentStatement_in_line754);
                    assignmentStatement31=assignmentStatement();

                    state._fsp--;



                        val = assignmentStatement31;
                       

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:361:7: 'for each ' GARMENT ' in ' WARDROBET LEFTCURLY lines RIGHTCURLY
                    {
                    match(input,63,FOLLOW_63_in_line767); 

                    match(input,GARMENT,FOLLOW_GARMENT_in_line769); 

                    match(input,57,FOLLOW_57_in_line771); 

                    match(input,WARDROBET,FOLLOW_WARDROBET_in_line773); 

                    match(input,LEFTCURLY,FOLLOW_LEFTCURLY_in_line775); 

                    pushFollow(FOLLOW_lines_in_line777);
                    lines32=lines();

                    state._fsp--;


                    match(input,RIGHTCURLY,FOLLOW_RIGHTCURLY_in_line779); 


                          val = "for ( Garment g : _garments ) {\n" + lines32 + "}";
                        

                    }
                    break;
                case 3 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:366:7: IF expr LEFTCURLY lines RIGHTCURLY optional_tail
                    {
                    match(input,IF,FOLLOW_IF_in_line794); 

                    pushFollow(FOLLOW_expr_in_line796);
                    expr33=expr();

                    state._fsp--;


                    match(input,LEFTCURLY,FOLLOW_LEFTCURLY_in_line798); 

                    pushFollow(FOLLOW_lines_in_line800);
                    lines34=lines();

                    state._fsp--;


                    match(input,RIGHTCURLY,FOLLOW_RIGHTCURLY_in_line802); 

                    pushFollow(FOLLOW_optional_tail_in_line804);
                    optional_tail35=optional_tail();

                    state._fsp--;



                          val = "if" + expr33 + "{" + lines34 + "}" + optional_tail35;
                        

                    }
                    break;
                case 4 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:370:7: REJTOK ENDOFSTMT
                    {
                    match(input,REJTOK,FOLLOW_REJTOK_in_line818); 

                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_line820); 


                          val = "";
                        

                    }
                    break;
                case 5 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:374:7: READT LEFTPARAN RIGHTPARAN ENDOFSTMT
                    {
                    match(input,READT,FOLLOW_READT_in_line834); 

                    match(input,LEFTPARAN,FOLLOW_LEFTPARAN_in_line836); 

                    match(input,RIGHTPARAN,FOLLOW_RIGHTPARAN_in_line838); 

                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_line840); 


                          val = "_s.next();";
                        

                    }
                    break;
                case 6 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:378:7: PRINTT LEFTPARAN printargs RIGHTPARAN ENDOFSTMT
                    {
                    match(input,PRINTT,FOLLOW_PRINTT_in_line854); 

                    match(input,LEFTPARAN,FOLLOW_LEFTPARAN_in_line856); 

                    pushFollow(FOLLOW_printargs_in_line858);
                    printargs36=printargs();

                    state._fsp--;


                    match(input,RIGHTPARAN,FOLLOW_RIGHTPARAN_in_line860); 

                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_line862); 


                            val = "System.out.println(" + printargs36 + ");" ;
                        

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "line"



    // $ANTLR start "printargs"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:385:1: printargs returns [String val] : printarg printargs1 ;
    public final String printargs() throws RecognitionException {
        String val = null;


        String printarg37 =null;

        GrammarParser.printargs1_return printargs138 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:386:5: ( printarg printargs1 )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:386:7: printarg printargs1
            {
            pushFollow(FOLLOW_printarg_in_printargs891);
            printarg37=printarg();

            state._fsp--;


            pushFollow(FOLLOW_printargs1_in_printargs893);
            printargs138=printargs1();

            state._fsp--;



                      val = printarg37 + (printargs138!=null?input.toString(printargs138.start,printargs138.stop):null);  
                 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "printargs"


    public static class printargs1_return extends ParserRuleReturnScope {
        public String val;
    };


    // $ANTLR start "printargs1"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:392:1: printargs1 returns [String val] : ( '+' STRINGTOK p1= printargs1 | '+' variableName p1= printargs1 |);
    public final GrammarParser.printargs1_return printargs1() throws RecognitionException {
        GrammarParser.printargs1_return retval = new GrammarParser.printargs1_return();
        retval.start = input.LT(1);


        Token STRINGTOK39=null;
        GrammarParser.printargs1_return p1 =null;

        GrammarParser.variableName_return variableName40 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:393:9: ( '+' STRINGTOK p1= printargs1 | '+' variableName p1= printargs1 |)
            int alt14=3;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==58) ) {
                int LA14_1 = input.LA(2);

                if ( (LA14_1==STRINGTOK) ) {
                    alt14=1;
                }
                else if ( (LA14_1==IDENTIFIER) ) {
                    alt14=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 14, 1, input);

                    throw nvae;

                }
            }
            else if ( (LA14_0==RIGHTPARAN) ) {
                alt14=3;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 14, 0, input);

                throw nvae;

            }
            switch (alt14) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:393:11: '+' STRINGTOK p1= printargs1
                    {
                    match(input,58,FOLLOW_58_in_printargs1926); 

                    STRINGTOK39=(Token)match(input,STRINGTOK,FOLLOW_STRINGTOK_in_printargs1928); 

                    pushFollow(FOLLOW_printargs1_in_printargs1932);
                    p1=printargs1();

                    state._fsp--;



                              retval.val = (STRINGTOK39!=null?STRINGTOK39.getText():null) + (p1!=null?p1.val:null);  
                            

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:397:11: '+' variableName p1= printargs1
                    {
                    match(input,58,FOLLOW_58_in_printargs1954); 

                    pushFollow(FOLLOW_variableName_in_printargs1956);
                    variableName40=variableName();

                    state._fsp--;


                    pushFollow(FOLLOW_printargs1_in_printargs1960);
                    p1=printargs1();

                    state._fsp--;



                              if(symbolTable.containsKey((variableName40!=null?input.toString(variableName40.start,variableName40.stop):null)))
                                retval.val = " + " + (variableName40!=null?input.toString(variableName40.start,variableName40.stop):null) + (p1!=null?p1.val:null);
                              else
                                System.out.println("Error! Variable not defined!");
                            

                    }
                    break;
                case 3 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:405:9: 
                    {

                              retval.val = "";
                            

                    }
                    break;

            }
            retval.stop = input.LT(-1);


        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "printargs1"



    // $ANTLR start "printarg"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:410:1: printarg returns [String val] : ( variableName | STRINGTOK );
    public final String printarg() throws RecognitionException {
        String val = null;


        Token STRINGTOK42=null;
        GrammarParser.variableName_return variableName41 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:411:7: ( variableName | STRINGTOK )
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( (LA15_0==IDENTIFIER) ) {
                alt15=1;
            }
            else if ( (LA15_0==STRINGTOK) ) {
                alt15=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 15, 0, input);

                throw nvae;

            }
            switch (alt15) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:412:7: variableName
                    {
                    pushFollow(FOLLOW_variableName_in_printarg1025);
                    variableName41=variableName();

                    state._fsp--;



                              val = (variableName41!=null?input.toString(variableName41.start,variableName41.stop):null) ;  
                            

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:416:9: STRINGTOK
                    {
                    STRINGTOK42=(Token)match(input,STRINGTOK,FOLLOW_STRINGTOK_in_printarg1043); 


                              val = (STRINGTOK42!=null?STRINGTOK42.getText():null);  
                          

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "printarg"



    // $ANTLR start "optional_tail"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:422:1: optional_tail returns [String val] : ( ELSE LEFTCURLY lines RIGHTCURLY |);
    public final String optional_tail() throws RecognitionException {
        String val = null;


        String lines43 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:423:3: ( ELSE LEFTCURLY lines RIGHTCURLY |)
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==ELSE) ) {
                alt16=1;
            }
            else if ( (LA16_0==DATET||LA16_0==GENERATEOUTFIT||(LA16_0 >= IDENTIFIER && LA16_0 <= IF)||LA16_0==INT||LA16_0==PRINTT||(LA16_0 >= READT && LA16_0 <= REJTOK)||LA16_0==RIGHTCURLY||LA16_0==STRING||LA16_0==63) ) {
                alt16=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 16, 0, input);

                throw nvae;

            }
            switch (alt16) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:423:5: ELSE LEFTCURLY lines RIGHTCURLY
                    {
                    match(input,ELSE,FOLLOW_ELSE_in_optional_tail1072); 

                    match(input,LEFTCURLY,FOLLOW_LEFTCURLY_in_optional_tail1074); 

                    pushFollow(FOLLOW_lines_in_optional_tail1076);
                    lines43=lines();

                    state._fsp--;


                    match(input,RIGHTCURLY,FOLLOW_RIGHTCURLY_in_optional_tail1078); 


                        val = "else {\n " + lines43 + "}";
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:428:3: 
                    {

                        val = "";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "optional_tail"



    // $ANTLR start "expr"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:433:1: expr returns [String val] : conditions ;
    public final String expr() throws RecognitionException {
        String val = null;


        String conditions44 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:434:3: ( conditions )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:435:3: conditions
            {
            pushFollow(FOLLOW_conditions_in_expr1109);
            conditions44=conditions();

            state._fsp--;



                val = conditions44;
              

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "expr"



    // $ANTLR start "conditions"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:441:1: conditions returns [String val] : ( LEFTPARAN c1= conditions beta | LEFTPARAN condition RIGHTPARAN );
    public final String conditions() throws RecognitionException {
        String val = null;


        String c1 =null;

        String beta45 =null;

        String condition46 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:442:3: ( LEFTPARAN c1= conditions beta | LEFTPARAN condition RIGHTPARAN )
            int alt17=2;
            int LA17_0 = input.LA(1);

            if ( (LA17_0==LEFTPARAN) ) {
                int LA17_1 = input.LA(2);

                if ( (LA17_1==LEFTPARAN) ) {
                    alt17=1;
                }
                else if ( (LA17_1==DATE||LA17_1==IDENTIFIER||LA17_1==NUMBER||LA17_1==STRINGTOK) ) {
                    alt17=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 17, 1, input);

                    throw nvae;

                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 17, 0, input);

                throw nvae;

            }
            switch (alt17) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:443:3: LEFTPARAN c1= conditions beta
                    {
                    match(input,LEFTPARAN,FOLLOW_LEFTPARAN_in_conditions1132); 

                    pushFollow(FOLLOW_conditions_in_conditions1136);
                    c1=conditions();

                    state._fsp--;


                    pushFollow(FOLLOW_beta_in_conditions1138);
                    beta45=beta();

                    state._fsp--;



                        val = "(" + c1 + beta45;
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:447:5: LEFTPARAN condition RIGHTPARAN
                    {
                    match(input,LEFTPARAN,FOLLOW_LEFTPARAN_in_conditions1148); 

                    pushFollow(FOLLOW_condition_in_conditions1150);
                    condition46=condition();

                    state._fsp--;


                    match(input,RIGHTPARAN,FOLLOW_RIGHTPARAN_in_conditions1152); 


                        val = "(" + condition46 + ")";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "conditions"



    // $ANTLR start "beta"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:453:1: beta returns [String val] : ( AND condition RIGHTPARAN | OR condition RIGHTPARAN );
    public final String beta() throws RecognitionException {
        String val = null;


        String condition47 =null;

        String condition48 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:454:3: ( AND condition RIGHTPARAN | OR condition RIGHTPARAN )
            int alt18=2;
            int LA18_0 = input.LA(1);

            if ( (LA18_0==AND) ) {
                alt18=1;
            }
            else if ( (LA18_0==OR) ) {
                alt18=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 18, 0, input);

                throw nvae;

            }
            switch (alt18) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:455:3: AND condition RIGHTPARAN
                    {
                    match(input,AND,FOLLOW_AND_in_beta1177); 

                    pushFollow(FOLLOW_condition_in_beta1179);
                    condition47=condition();

                    state._fsp--;


                    match(input,RIGHTPARAN,FOLLOW_RIGHTPARAN_in_beta1181); 


                        val = " && " + condition47 + ")";
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:459:5: OR condition RIGHTPARAN
                    {
                    match(input,OR,FOLLOW_OR_in_beta1191); 

                    pushFollow(FOLLOW_condition_in_beta1193);
                    condition48=condition();

                    state._fsp--;


                    match(input,RIGHTPARAN,FOLLOW_RIGHTPARAN_in_beta1195); 


                        val = " || " + condition48 + ")";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "beta"



    // $ANTLR start "condition"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:465:1: condition returns [String val] : (n1= NUMBER CONDITIONAL_OP n2= NUMBER |v1= variableName CONDITIONAL_OP v2= variableName | NUMBER CONDITIONAL_OP variableName | variableName CONDITIONAL_OP NUMBER | DATE CONDITIONAL_OP variableName | variableName CONDITIONAL_OP DATE | STRINGTOK CONDITIONAL_OP variableName | variableName CONDITIONAL_OP STRINGTOK );
    public final String condition() throws RecognitionException {
        String val = null;


        Token n1=null;
        Token n2=null;
        Token CONDITIONAL_OP49=null;
        Token CONDITIONAL_OP50=null;
        Token NUMBER52=null;
        Token CONDITIONAL_OP53=null;
        Token CONDITIONAL_OP55=null;
        Token NUMBER56=null;
        Token CONDITIONAL_OP58=null;
        Token DATE59=null;
        Token CONDITIONAL_OP61=null;
        Token DATE62=null;
        Token CONDITIONAL_OP64=null;
        Token STRINGTOK65=null;
        Token CONDITIONAL_OP67=null;
        Token STRINGTOK68=null;
        GrammarParser.variableName_return v1 =null;

        GrammarParser.variableName_return v2 =null;

        GrammarParser.variableName_return variableName51 =null;

        GrammarParser.variableName_return variableName54 =null;

        GrammarParser.variableName_return variableName57 =null;

        GrammarParser.variableName_return variableName60 =null;

        GrammarParser.variableName_return variableName63 =null;

        GrammarParser.variableName_return variableName66 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:466:4: (n1= NUMBER CONDITIONAL_OP n2= NUMBER |v1= variableName CONDITIONAL_OP v2= variableName | NUMBER CONDITIONAL_OP variableName | variableName CONDITIONAL_OP NUMBER | DATE CONDITIONAL_OP variableName | variableName CONDITIONAL_OP DATE | STRINGTOK CONDITIONAL_OP variableName | variableName CONDITIONAL_OP STRINGTOK )
            int alt19=8;
            switch ( input.LA(1) ) {
            case NUMBER:
                {
                int LA19_1 = input.LA(2);

                if ( (LA19_1==CONDITIONAL_OP) ) {
                    int LA19_5 = input.LA(3);

                    if ( (LA19_5==NUMBER) ) {
                        alt19=1;
                    }
                    else if ( (LA19_5==IDENTIFIER) ) {
                        alt19=3;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 19, 5, input);

                        throw nvae;

                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 19, 1, input);

                    throw nvae;

                }
                }
                break;
            case IDENTIFIER:
                {
                int LA19_2 = input.LA(2);

                if ( (LA19_2==CONDITIONAL_OP) ) {
                    switch ( input.LA(3) ) {
                    case NUMBER:
                        {
                        alt19=4;
                        }
                        break;
                    case DATE:
                        {
                        alt19=6;
                        }
                        break;
                    case STRINGTOK:
                        {
                        alt19=8;
                        }
                        break;
                    case IDENTIFIER:
                        {
                        alt19=2;
                        }
                        break;
                    default:
                        NoViableAltException nvae =
                            new NoViableAltException("", 19, 6, input);

                        throw nvae;

                    }

                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 19, 2, input);

                    throw nvae;

                }
                }
                break;
            case DATE:
                {
                alt19=5;
                }
                break;
            case STRINGTOK:
                {
                alt19=7;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 19, 0, input);

                throw nvae;

            }

            switch (alt19) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:467:4: n1= NUMBER CONDITIONAL_OP n2= NUMBER
                    {
                    n1=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_condition1224); 

                    CONDITIONAL_OP49=(Token)match(input,CONDITIONAL_OP,FOLLOW_CONDITIONAL_OP_in_condition1226); 

                    n2=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_condition1230); 


                          val =(n1!=null?n1.getText():null) + (CONDITIONAL_OP49!=null?CONDITIONAL_OP49.getText():null) + (n2!=null?n2.getText():null);
                       

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:472:6: v1= variableName CONDITIONAL_OP v2= variableName
                    {
                    pushFollow(FOLLOW_variableName_in_condition1249);
                    v1=variableName();

                    state._fsp--;


                    CONDITIONAL_OP50=(Token)match(input,CONDITIONAL_OP,FOLLOW_CONDITIONAL_OP_in_condition1251); 

                    pushFollow(FOLLOW_variableName_in_condition1255);
                    v2=variableName();

                    state._fsp--;



                          if(symbolTable.containsKey((v1!=null?input.toString(v1.start,v1.stop):null)) && symbolTable.containsKey((v2!=null?input.toString(v2.start,v2.stop):null))){
                              if(symbolTable.get((v1!=null?input.toString(v1.start,v1.stop):null))[TYPE].equals(symbolTable.get((v2!=null?input.toString(v2.start,v2.stop):null))[TYPE])){
                                if(symbolTable.get((v1!=null?input.toString(v1.start,v1.stop):null))[VALUE] != null && symbolTable.get((v2!=null?input.toString(v2.start,v2.stop):null))[VALUE] != null){
                                  if(symbolTable.get((v1!=null?input.toString(v1.start,v1.stop):null))[TYPE].equals("int"))
                                    val = (v1!=null?input.toString(v1.start,v1.stop):null) + (CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null) + (v2!=null?input.toString(v2.start,v2.stop):null);
                                  else if (symbolTable.get((v1!=null?input.toString(v1.start,v1.stop):null))[TYPE].equals("date")){
                                    if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals("=="))
                                      val = "(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  ".compare(\"" + (v2!=null?input.toString(v2.start,v2.stop):null) + "\")==0";
                                    else if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals("!="))
                                      val = "(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  ".compare(\"" + (v2!=null?input.toString(v2.start,v2.stop):null) + "\")!=0";
                                    else if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals("<="))
                                      val = "(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  ".compare(\"" + (v2!=null?input.toString(v2.start,v2.stop):null) + "\")>=0";
                                    else if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals(">="))
                                      val = "(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  ".compare(\"" + (v2!=null?input.toString(v2.start,v2.stop):null) + "\")<=0";
                                    else if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals("<"))
                                      val = "(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  ".compare(\"" + (v2!=null?input.toString(v2.start,v2.stop):null) + "\")>0";
                                    else if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals(">"))
                                      val = "(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  ".compare(\"" + (v2!=null?input.toString(v2.start,v2.stop):null) + "\")<0";
                                  }
                                  else if(symbolTable.get((v1!=null?input.toString(v1.start,v1.stop):null))[TYPE].equals("string")){
                                    if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals("=="))
                                      val = "\"(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  "\".equalsIgnoreCase(" + (v2!=null?input.toString(v2.start,v2.stop):null) + ")==0";
                                    else if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals("!="))
                                      val = "\"(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  "\".equalsIgnoreCase(" + (v2!=null?input.toString(v2.start,v2.stop):null) + ")!=0";
                                    else if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals("<="))
                                      val = "\"(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  "\".compareToIgnoreCase(" + (v2!=null?input.toString(v2.start,v2.stop):null) + ")<=0";
                                    else if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals(">="))
                                      val = "\"(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  "\".compareToIgnoreCase(" + (v2!=null?input.toString(v2.start,v2.stop):null) + ")>=0";
                                    else if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals("<"))
                                      val = "\"(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  "\".compareToIgnoreCase(" + (v2!=null?input.toString(v2.start,v2.stop):null) + ")<0";
                                    else if((CONDITIONAL_OP50!=null?CONDITIONAL_OP50.getText():null).equals(">"))
                                      val = "\"(" + (v1!=null?input.toString(v1.start,v1.stop):null) +  "\".compareToIgnoreCase(" + (v2!=null?input.toString(v2.start,v2.stop):null) + ")>0";
                                  }
                                }
                                else {
                                  System.out.println("Error! No value assigned to variable!");
                                }
                              }
                              else{
                                System.out.println("Error! Type Mismatch");
                              }
                          }
                          else{
                            System.out.println("Error! Undefined variable name");
                          }
                        

                    }
                    break;
                case 3 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:520:5: NUMBER CONDITIONAL_OP variableName
                    {
                    NUMBER52=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_condition1267); 

                    CONDITIONAL_OP53=(Token)match(input,CONDITIONAL_OP,FOLLOW_CONDITIONAL_OP_in_condition1269); 

                    pushFollow(FOLLOW_variableName_in_condition1271);
                    variableName51=variableName();

                    state._fsp--;



                          if(symbolTable.containsKey((variableName51!=null?input.toString(variableName51.start,variableName51.stop):null))){
                              if(symbolTable.get((variableName51!=null?input.toString(variableName51.start,variableName51.stop):null))[TYPE].equals("int")){
                                if(symbolTable.get((variableName51!=null?input.toString(variableName51.start,variableName51.stop):null))[VALUE] != null){
                                  val = (NUMBER52!=null?NUMBER52.getText():null) + (CONDITIONAL_OP53!=null?CONDITIONAL_OP53.getText():null) + (variableName51!=null?input.toString(variableName51.start,variableName51.stop):null);
                                }
                                else{
                                   System.out.println("Error! No value assigned to variable!");
                                }
                              }
                              else{
                                System.out.println("Error! Type Mismatch");
                              }
                          }
                          else{
                            System.out.println("Error! Undefined variable name");
                          }
                        

                    }
                    break;
                case 4 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:539:5: variableName CONDITIONAL_OP NUMBER
                    {
                    pushFollow(FOLLOW_variableName_in_condition1283);
                    variableName54=variableName();

                    state._fsp--;


                    CONDITIONAL_OP55=(Token)match(input,CONDITIONAL_OP,FOLLOW_CONDITIONAL_OP_in_condition1285); 

                    NUMBER56=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_condition1287); 


                        if(symbolTable.containsKey((variableName54!=null?input.toString(variableName54.start,variableName54.stop):null))){
                              if(symbolTable.get((variableName54!=null?input.toString(variableName54.start,variableName54.stop):null))[TYPE].equals("int")){
                                if(symbolTable.get((variableName54!=null?input.toString(variableName54.start,variableName54.stop):null))[VALUE] != null){
                                  val = (variableName54!=null?input.toString(variableName54.start,variableName54.stop):null) + (CONDITIONAL_OP55!=null?CONDITIONAL_OP55.getText():null) + (NUMBER56!=null?NUMBER56.getText():null);
                                }
                                else{
                                   System.out.println("Error! No value assigned to variable!");
                                }
                              }
                              else{
                                System.out.println("Error! Type Mismatch");
                              }
                          }
                          else{
                            System.out.println("Error! Undefined variable name");
                          }
                      

                    }
                    break;
                case 5 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:558:5: DATE CONDITIONAL_OP variableName
                    {
                    DATE59=(Token)match(input,DATE,FOLLOW_DATE_in_condition1297); 

                    CONDITIONAL_OP58=(Token)match(input,CONDITIONAL_OP,FOLLOW_CONDITIONAL_OP_in_condition1299); 

                    pushFollow(FOLLOW_variableName_in_condition1301);
                    variableName57=variableName();

                    state._fsp--;



                          if(symbolTable.containsKey((variableName57!=null?input.toString(variableName57.start,variableName57.stop):null))){
                              if(symbolTable.get((variableName57!=null?input.toString(variableName57.start,variableName57.stop):null))[TYPE].equals("date")){
                                if(symbolTable.get((variableName57!=null?input.toString(variableName57.start,variableName57.stop):null))[VALUE] != null){
                                  if((CONDITIONAL_OP58!=null?CONDITIONAL_OP58.getText():null).equals("=="))
                                  val = "(" + (variableName57!=null?input.toString(variableName57.start,variableName57.stop):null) +  ".compare(\"" + (DATE59!=null?DATE59.getText():null) + "\")==0";
                                else if((CONDITIONAL_OP58!=null?CONDITIONAL_OP58.getText():null).equals("!="))
                                  val = "(" + (variableName57!=null?input.toString(variableName57.start,variableName57.stop):null) +  ".compare(\"" + (DATE59!=null?DATE59.getText():null) + "\")!=0";
                                else if((CONDITIONAL_OP58!=null?CONDITIONAL_OP58.getText():null).equals("<="))
                                  val = "(" + (variableName57!=null?input.toString(variableName57.start,variableName57.stop):null) +  ".compare(\"" + (DATE59!=null?DATE59.getText():null) + "\")>=0";
                                else if((CONDITIONAL_OP58!=null?CONDITIONAL_OP58.getText():null).equals(">="))
                                  val = "(" + (variableName57!=null?input.toString(variableName57.start,variableName57.stop):null) +  ".compare(\"" + (DATE59!=null?DATE59.getText():null) + "\")<=0";
                                else if((CONDITIONAL_OP58!=null?CONDITIONAL_OP58.getText():null).equals("<"))
                                  val = "(" + (variableName57!=null?input.toString(variableName57.start,variableName57.stop):null) +  ".compare(\"" + (DATE59!=null?DATE59.getText():null) + "\")>0";
                                else if((CONDITIONAL_OP58!=null?CONDITIONAL_OP58.getText():null).equals(">"))
                                  val = "(" + (variableName57!=null?input.toString(variableName57.start,variableName57.stop):null) +  ".compare(\"" + (DATE59!=null?DATE59.getText():null) + "\")<0";
                                }
                                else{
                                  System.out.println("Error! No value assigned to variable!");
                                }
                              }
                              else{
                                System.out.println("Error! Type Mismatch");
                              }
                          }
                          else{
                            System.out.println("Error! Undefined variable name");
                          }
                        

                    }
                    break;
                case 6 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:588:5: variableName CONDITIONAL_OP DATE
                    {
                    pushFollow(FOLLOW_variableName_in_condition1313);
                    variableName60=variableName();

                    state._fsp--;


                    CONDITIONAL_OP61=(Token)match(input,CONDITIONAL_OP,FOLLOW_CONDITIONAL_OP_in_condition1315); 

                    DATE62=(Token)match(input,DATE,FOLLOW_DATE_in_condition1317); 


                          if(symbolTable.containsKey((variableName60!=null?input.toString(variableName60.start,variableName60.stop):null))){
                              if(symbolTable.get((variableName60!=null?input.toString(variableName60.start,variableName60.stop):null))[TYPE].equals("date")){
                                if(symbolTable.get((variableName60!=null?input.toString(variableName60.start,variableName60.stop):null))[VALUE] != null){
                                  if((CONDITIONAL_OP61!=null?CONDITIONAL_OP61.getText():null).equals("=="))
                                  val = "(" + (variableName60!=null?input.toString(variableName60.start,variableName60.stop):null) +  ".compare(\"" + (DATE62!=null?DATE62.getText():null) + "\")==0";
                                else if((CONDITIONAL_OP61!=null?CONDITIONAL_OP61.getText():null).equals("!="))
                                  val = "(" + (variableName60!=null?input.toString(variableName60.start,variableName60.stop):null) +  ".compare(\"" + (DATE62!=null?DATE62.getText():null) + "\")!=0";
                                else if((CONDITIONAL_OP61!=null?CONDITIONAL_OP61.getText():null).equals("<="))
                                  val = "(" + (variableName60!=null?input.toString(variableName60.start,variableName60.stop):null) +  ".compare(\"" + (DATE62!=null?DATE62.getText():null) + "\")<=0";
                                else if((CONDITIONAL_OP61!=null?CONDITIONAL_OP61.getText():null).equals(">="))
                                  val = "(" + (variableName60!=null?input.toString(variableName60.start,variableName60.stop):null) +  ".compare(\"" + (DATE62!=null?DATE62.getText():null) + "\")>=0";
                                else if((CONDITIONAL_OP61!=null?CONDITIONAL_OP61.getText():null).equals("<"))
                                  val = "(" + (variableName60!=null?input.toString(variableName60.start,variableName60.stop):null) +  ".compare(\"" + (DATE62!=null?DATE62.getText():null) + "\")<0";
                                else if((CONDITIONAL_OP61!=null?CONDITIONAL_OP61.getText():null).equals(">"))
                                  val = "(" + (variableName60!=null?input.toString(variableName60.start,variableName60.stop):null) +  ".compare(\"" + (DATE62!=null?DATE62.getText():null) + "\")>0";
                                }
                                else{
                                  System.out.println("Error! No value assigned to variable!");
                                }  
                              }
                              else{
                                System.out.println("Error! Type Mismatch");
                              }
                          }
                          else{
                            System.out.println("Error! Undefined variable name");
                          }
                        

                    }
                    break;
                case 7 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:618:6: STRINGTOK CONDITIONAL_OP variableName
                    {
                    STRINGTOK65=(Token)match(input,STRINGTOK,FOLLOW_STRINGTOK_in_condition1330); 

                    CONDITIONAL_OP64=(Token)match(input,CONDITIONAL_OP,FOLLOW_CONDITIONAL_OP_in_condition1332); 

                    pushFollow(FOLLOW_variableName_in_condition1334);
                    variableName63=variableName();

                    state._fsp--;



                          if(symbolTable.containsKey((variableName63!=null?input.toString(variableName63.start,variableName63.stop):null))){
                              if(symbolTable.get((variableName63!=null?input.toString(variableName63.start,variableName63.stop):null))[TYPE].equals("string")){
                                if(symbolTable.get((variableName63!=null?input.toString(variableName63.start,variableName63.stop):null))[VALUE] != null){
                                if((CONDITIONAL_OP64!=null?CONDITIONAL_OP64.getText():null).equals("=="))
                                  val = (STRINGTOK65!=null?STRINGTOK65.getText():null) +  "\".equalsIgnoreCase(" + (variableName63!=null?input.toString(variableName63.start,variableName63.stop):null) + ")==0";
                                else if((CONDITIONAL_OP64!=null?CONDITIONAL_OP64.getText():null).equals("!="))
                                  val = (STRINGTOK65!=null?STRINGTOK65.getText():null) +  "\".equalsIgnoreCase(" + (variableName63!=null?input.toString(variableName63.start,variableName63.stop):null) + ")!=0";
                                else if((CONDITIONAL_OP64!=null?CONDITIONAL_OP64.getText():null).equals("<="))
                                  val = (STRINGTOK65!=null?STRINGTOK65.getText():null) +  "\".compareToIgnoreCase(" + (variableName63!=null?input.toString(variableName63.start,variableName63.stop):null) + ")<=0";
                                else if((CONDITIONAL_OP64!=null?CONDITIONAL_OP64.getText():null).equals(">="))
                                  val = (STRINGTOK65!=null?STRINGTOK65.getText():null) +  "\".compareToIgnoreCase(" + (variableName63!=null?input.toString(variableName63.start,variableName63.stop):null) + ")>=0";
                                else if((CONDITIONAL_OP64!=null?CONDITIONAL_OP64.getText():null).equals("<"))
                                  val = (STRINGTOK65!=null?STRINGTOK65.getText():null) +  "\".compareToIgnoreCase(" + (variableName63!=null?input.toString(variableName63.start,variableName63.stop):null) + ")<0";
                                else if((CONDITIONAL_OP64!=null?CONDITIONAL_OP64.getText():null).equals(">"))
                                  val = (STRINGTOK65!=null?STRINGTOK65.getText():null) +  "\".compareToIgnoreCase(" + (variableName63!=null?input.toString(variableName63.start,variableName63.stop):null) + ")>0";
                                }
                                else{
                                  System.out.println("Error!  No value assigned to variable!");
                                }
                              }
                              else{
                                System.out.println("Error! Type Mismatch");
                              }
                          }
                          else{
                            System.out.println("Error! Undefined variable name");
                          }
                        

                    }
                    break;
                case 8 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:648:5: variableName CONDITIONAL_OP STRINGTOK
                    {
                    pushFollow(FOLLOW_variableName_in_condition1347);
                    variableName66=variableName();

                    state._fsp--;


                    CONDITIONAL_OP67=(Token)match(input,CONDITIONAL_OP,FOLLOW_CONDITIONAL_OP_in_condition1349); 

                    STRINGTOK68=(Token)match(input,STRINGTOK,FOLLOW_STRINGTOK_in_condition1351); 


                          if(symbolTable.containsKey((variableName66!=null?input.toString(variableName66.start,variableName66.stop):null))){
                              if(symbolTable.get((variableName66!=null?input.toString(variableName66.start,variableName66.stop):null))[TYPE].equals("string")){
                                if(symbolTable.get((variableName66!=null?input.toString(variableName66.start,variableName66.stop):null))[VALUE] != null){
                                if((CONDITIONAL_OP67!=null?CONDITIONAL_OP67.getText():null).equals("=="))
                                  val = (variableName66!=null?input.toString(variableName66.start,variableName66.stop):null) +  ".equalsIgnoreCase(" + (STRINGTOK68!=null?STRINGTOK68.getText():null) + ")==0";
                                else if((CONDITIONAL_OP67!=null?CONDITIONAL_OP67.getText():null).equals("!="))
                                  val = (variableName66!=null?input.toString(variableName66.start,variableName66.stop):null) +  ".equalsIgnoreCase(" + (STRINGTOK68!=null?STRINGTOK68.getText():null) + ")!=0";
                                else if((CONDITIONAL_OP67!=null?CONDITIONAL_OP67.getText():null).equals("<="))
                                  val = (variableName66!=null?input.toString(variableName66.start,variableName66.stop):null) +  ".compareToIgnoreCase(" + (STRINGTOK68!=null?STRINGTOK68.getText():null) + ")<=0";
                                else if((CONDITIONAL_OP67!=null?CONDITIONAL_OP67.getText():null).equals(">="))
                                  val = (variableName66!=null?input.toString(variableName66.start,variableName66.stop):null) +  ".compareToIgnoreCase(" + (STRINGTOK68!=null?STRINGTOK68.getText():null) + ")>=0";
                                else if((CONDITIONAL_OP67!=null?CONDITIONAL_OP67.getText():null).equals("<"))
                                  val = (variableName66!=null?input.toString(variableName66.start,variableName66.stop):null) +  ".compareToIgnoreCase(" + (STRINGTOK68!=null?STRINGTOK68.getText():null) + ")<0";
                                else if((CONDITIONAL_OP67!=null?CONDITIONAL_OP67.getText():null).equals(">"))
                                  val = (variableName66!=null?input.toString(variableName66.start,variableName66.stop):null) +  ".compareToIgnoreCase(" + (STRINGTOK68!=null?STRINGTOK68.getText():null) + ")>0";
                                }
                                else{
                                  System.out.println("Error!  No value assigned to variable!");
                                }
                              }
                              else{
                                System.out.println("Error! Type Mism atch");
                              }
                          }
                          else{
                            System.out.println("Error! Undefined variable name");
                          }
                        

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "condition"



    // $ANTLR start "assignmentStatement"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:680:1: assignmentStatement returns [String val] : ( DATET variableName ASSIGNMENT_OP DATE ENDOFSTMT | DATET variableName ENDOFSTMT | variableName ASSIGNMENT_OP DATE ENDOFSTMT | INT variableName ASSIGNMENT_OP NUMBER ENDOFSTMT | INT variableName ENDOFSTMT | variableName ASSIGNMENT_OP NUMBER ENDOFSTMT | STRING variableName ASSIGNMENT_OP STRINGTOK ENDOFSTMT | STRING variableName ENDOFSTMT | variableName ASSIGNMENT_OP STRINGTOK ENDOFSTMT |v1= variableName ASSIGNMENT_OP v2= variableName ENDOFSTMT | variableName ASSIGNMENT_OP READT LEFTPARAN RIGHTPARAN ENDOFSTMT );
    public final String assignmentStatement() throws RecognitionException {
        String val = null;


        Token DATE70=null;
        Token ASSIGNMENT_OP71=null;
        Token DATE74=null;
        Token NUMBER76=null;
        Token ASSIGNMENT_OP77=null;
        Token NUMBER80=null;
        Token STRINGTOK82=null;
        Token ASSIGNMENT_OP83=null;
        Token STRINGTOK86=null;
        GrammarParser.variableName_return v1 =null;

        GrammarParser.variableName_return v2 =null;

        GrammarParser.variableName_return variableName69 =null;

        GrammarParser.variableName_return variableName72 =null;

        GrammarParser.variableName_return variableName73 =null;

        GrammarParser.variableName_return variableName75 =null;

        GrammarParser.variableName_return variableName78 =null;

        GrammarParser.variableName_return variableName79 =null;

        GrammarParser.variableName_return variableName81 =null;

        GrammarParser.variableName_return variableName84 =null;

        GrammarParser.variableName_return variableName85 =null;

        GrammarParser.variableName_return variableName87 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:681:3: ( DATET variableName ASSIGNMENT_OP DATE ENDOFSTMT | DATET variableName ENDOFSTMT | variableName ASSIGNMENT_OP DATE ENDOFSTMT | INT variableName ASSIGNMENT_OP NUMBER ENDOFSTMT | INT variableName ENDOFSTMT | variableName ASSIGNMENT_OP NUMBER ENDOFSTMT | STRING variableName ASSIGNMENT_OP STRINGTOK ENDOFSTMT | STRING variableName ENDOFSTMT | variableName ASSIGNMENT_OP STRINGTOK ENDOFSTMT |v1= variableName ASSIGNMENT_OP v2= variableName ENDOFSTMT | variableName ASSIGNMENT_OP READT LEFTPARAN RIGHTPARAN ENDOFSTMT )
            int alt20=11;
            switch ( input.LA(1) ) {
            case DATET:
                {
                int LA20_1 = input.LA(2);

                if ( (LA20_1==IDENTIFIER) ) {
                    int LA20_5 = input.LA(3);

                    if ( (LA20_5==ASSIGNMENT_OP) ) {
                        alt20=1;
                    }
                    else if ( (LA20_5==ENDOFSTMT) ) {
                        alt20=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 20, 5, input);

                        throw nvae;

                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 20, 1, input);

                    throw nvae;

                }
                }
                break;
            case IDENTIFIER:
                {
                int LA20_2 = input.LA(2);

                if ( (LA20_2==ASSIGNMENT_OP) ) {
                    switch ( input.LA(3) ) {
                    case DATE:
                        {
                        alt20=3;
                        }
                        break;
                    case NUMBER:
                        {
                        alt20=6;
                        }
                        break;
                    case STRINGTOK:
                        {
                        alt20=9;
                        }
                        break;
                    case READT:
                        {
                        alt20=11;
                        }
                        break;
                    case IDENTIFIER:
                        {
                        alt20=10;
                        }
                        break;
                    default:
                        NoViableAltException nvae =
                            new NoViableAltException("", 20, 6, input);

                        throw nvae;

                    }

                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 20, 2, input);

                    throw nvae;

                }
                }
                break;
            case INT:
                {
                int LA20_3 = input.LA(2);

                if ( (LA20_3==IDENTIFIER) ) {
                    int LA20_7 = input.LA(3);

                    if ( (LA20_7==ASSIGNMENT_OP) ) {
                        alt20=4;
                    }
                    else if ( (LA20_7==ENDOFSTMT) ) {
                        alt20=5;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 20, 7, input);

                        throw nvae;

                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 20, 3, input);

                    throw nvae;

                }
                }
                break;
            case STRING:
                {
                int LA20_4 = input.LA(2);

                if ( (LA20_4==IDENTIFIER) ) {
                    int LA20_8 = input.LA(3);

                    if ( (LA20_8==ASSIGNMENT_OP) ) {
                        alt20=7;
                    }
                    else if ( (LA20_8==ENDOFSTMT) ) {
                        alt20=8;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 20, 8, input);

                        throw nvae;

                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 20, 4, input);

                    throw nvae;

                }
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 20, 0, input);

                throw nvae;

            }

            switch (alt20) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:682:3: DATET variableName ASSIGNMENT_OP DATE ENDOFSTMT
                    {
                    match(input,DATET,FOLLOW_DATET_in_assignmentStatement1376); 

                    pushFollow(FOLLOW_variableName_in_assignmentStatement1378);
                    variableName69=variableName();

                    state._fsp--;


                    ASSIGNMENT_OP71=(Token)match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1380); 

                    DATE70=(Token)match(input,DATE,FOLLOW_DATE_in_assignmentStatement1382); 

                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_assignmentStatement1384); 


                        if(!symbolTable.containsKey((variableName69!=null?input.toString(variableName69.start,variableName69.stop):null)))
                        {
                          String[] s = new String[2];
                          s[0] = "date";
                          s[1] = (DATE70!=null?DATE70.getText():null);
                          symbolTable.put((variableName69!=null?input.toString(variableName69.start,variableName69.stop):null), s);
                         // val = "String " + (variableName69!=null?input.toString(variableName69.start,variableName69.stop):null) + (ASSIGNMENT_OP71!=null?ASSIGNMENT_OP71.getText():null) + "\"" + (DATE70!=null?DATE70.getText():null) +"\";";
                        
                         val = "_date = \"" + (DATE70!=null?DATE70.getText():null) + "/" + year + "\"; \n" +
                                (variableName69!=null?input.toString(variableName69.start,variableName69.stop):null) +"= null; \n" +
                                "try{ \n" +
                                 (variableName69!=null?input.toString(variableName69.start,variableName69.stop):null) +" = _sdf.parse(_date); \n" +
                                " } catch (ParseException _e) { \n" +
                                "} \n";
                          
                          date = (DATE70!=null?DATE70.getText():null) + "/" + year;
                          checkDate = null;
                          sdf = new SimpleDateFormat("MM/dd/yyyy");
                        
                        try {
                          
                          checkDate = sdf.parse(date);
                        } catch (ParseException e) {
                          // TODO Auto-generated catch block
                          System.out.println("EXCEPTION in date format!!!!!!!!!!!");
                          
                        }
                        
                        if(!sdf.format(checkDate).equals(date)){
                          System.out.println("ERROR in date format!!!!");
                        }
                        }
                        else
                          System.out.println("Error! You are trying to redefine a previously defined variable " + (variableName69!=null?input.toString(variableName69.start,variableName69.stop):null));
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:720:3: DATET variableName ENDOFSTMT
                    {
                    match(input,DATET,FOLLOW_DATET_in_assignmentStatement1396); 

                    pushFollow(FOLLOW_variableName_in_assignmentStatement1398);
                    variableName72=variableName();

                    state._fsp--;


                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_assignmentStatement1400); 


                        if(symbolTable.containsKey((variableName72!=null?input.toString(variableName72.start,variableName72.stop):null)))
                          System.out.println("Error! You are trying to redefine a previously defined variable " + (variableName72!=null?input.toString(variableName72.start,variableName72.stop):null));
                        else {
                          String[] s = new String[2];
                          s[0] = "date";
                          s[1] = null;
                          symbolTable.put((variableName72!=null?input.toString(variableName72.start,variableName72.stop):null), s);
                         // val = "String " + (variableName72!=null?input.toString(variableName72.start,variableName72.stop):null) + " = null;";
                         val = (variableName72!=null?input.toString(variableName72.start,variableName72.stop):null) +"= null; \n";
                        }
                      

                    }
                    break;
                case 3 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:734:3: variableName ASSIGNMENT_OP DATE ENDOFSTMT
                    {
                    pushFollow(FOLLOW_variableName_in_assignmentStatement1412);
                    variableName73=variableName();

                    state._fsp--;


                    match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1414); 

                    DATE74=(Token)match(input,DATE,FOLLOW_DATE_in_assignmentStatement1416); 

                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_assignmentStatement1418); 


                        if(!symbolTable.containsKey((variableName73!=null?input.toString(variableName73.start,variableName73.stop):null)))
                          System.out.println("Error! Undefined variable!!" + (variableName73!=null?input.toString(variableName73.start,variableName73.stop):null));
                        else {
                          if(symbolTable.get((variableName73!=null?input.toString(variableName73.start,variableName73.stop):null))[TYPE].equals("date")){
                          String[] s = new String[2];
                          s[0] = "date";
                          s[1] = (DATE74!=null?DATE74.getText():null);
                          symbolTable.put((variableName73!=null?input.toString(variableName73.start,variableName73.stop):null), s);
                         
                        //  val = (variableName73!=null?input.toString(variableName73.start,variableName73.stop):null) + " = new Date(\"" + (DATE74!=null?DATE74.getText():null) + "\");" ;}
                       val = "_date = \"" + (DATE74!=null?DATE74.getText():null) + "/" + year + "\"; \n" +
                              "try{ \n" +
                                 (variableName73!=null?input.toString(variableName73.start,variableName73.stop):null) +" = _sdf.parse(_date); \n" +
                                " } catch (ParseException _e) { \n" +
                                "} \n";
                                
                        
                         date = (DATE74!=null?DATE74.getText():null) + "/" + year;
                          checkDate = null;
                          
                        sdf = new SimpleDateFormat("MM/dd/yyyy");
                        
                        try { 
                          
                           checkDate = sdf.parse(date);
                        } catch (ParseException e) {
                          // TODO Auto-generated catch block
                          System.out.println("EXCEPTION in date format!!!!!!!!!!!");
                          
                        }
                        
                        if(!sdf.format(checkDate).equals(date)){
                          System.out.println("ERROR in date format!!!!");
                        }
                        
                        }
                          else{
                            System.out.println("Error! Type mismatch!");
                          }
                        }
                      

                    }
                    break;
                case 4 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:777:5: INT variableName ASSIGNMENT_OP NUMBER ENDOFSTMT
                    {
                    match(input,INT,FOLLOW_INT_in_assignmentStatement1428); 

                    pushFollow(FOLLOW_variableName_in_assignmentStatement1430);
                    variableName75=variableName();

                    state._fsp--;


                    ASSIGNMENT_OP77=(Token)match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1432); 

                    NUMBER76=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_assignmentStatement1434); 

                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_assignmentStatement1436); 


                        if(!symbolTable.containsKey((variableName75!=null?input.toString(variableName75.start,variableName75.stop):null))){
                        String[] s = new String[2];
                        s[0] = "int";
                        s[1] = (NUMBER76!=null?NUMBER76.getText():null);
                        symbolTable.put((variableName75!=null?input.toString(variableName75.start,variableName75.stop):null), s);
                        val = (variableName75!=null?input.toString(variableName75.start,variableName75.stop):null) + (ASSIGNMENT_OP77!=null?ASSIGNMENT_OP77.getText():null) + (NUMBER76!=null?NUMBER76.getText():null) + ";";}
                        else
                          System.out.println("Error! You are trying to redefine a previously defined variable " + (variableName75!=null?input.toString(variableName75.start,variableName75.stop):null));
                      

                    }
                    break;
                case 5 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:789:3: INT variableName ENDOFSTMT
                    {
                    match(input,INT,FOLLOW_INT_in_assignmentStatement1448); 

                    pushFollow(FOLLOW_variableName_in_assignmentStatement1450);
                    variableName78=variableName();

                    state._fsp--;


                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_assignmentStatement1452); 


                        if(symbolTable.containsKey((variableName78!=null?input.toString(variableName78.start,variableName78.stop):null)))
                          System.out.println("Error! You are trying to redefine a previously defined variable " + (variableName78!=null?input.toString(variableName78.start,variableName78.stop):null));
                        else {
                          String[] s = new String[2];
                          s[0] = "int";
                          s[1] = null;
                          symbolTable.put((variableName78!=null?input.toString(variableName78.start,variableName78.stop):null), s);
                         // val =  (variableName78!=null?input.toString(variableName78.start,variableName78.stop):null) + ";";
                         val = "";
                        }
                      

                    }
                    break;
                case 6 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:803:3: variableName ASSIGNMENT_OP NUMBER ENDOFSTMT
                    {
                    pushFollow(FOLLOW_variableName_in_assignmentStatement1464);
                    variableName79=variableName();

                    state._fsp--;


                    match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1466); 

                    NUMBER80=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_assignmentStatement1468); 

                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_assignmentStatement1470); 


                        if(!symbolTable.containsKey((variableName79!=null?input.toString(variableName79.start,variableName79.stop):null)))
                          System.out.println("Error! Undefined variable!" + (variableName79!=null?input.toString(variableName79.start,variableName79.stop):null));
                        else {
                           if(symbolTable.get((variableName79!=null?input.toString(variableName79.start,variableName79.stop):null))[TYPE].equals("int")){
                          String[] s = new String[2];
                          s[0] = "int";
                          s[1] = null;
                          symbolTable.put((variableName79!=null?input.toString(variableName79.start,variableName79.stop):null), s);
                          val =  (variableName79!=null?input.toString(variableName79.start,variableName79.stop):null) + " = " + (NUMBER80!=null?NUMBER80.getText():null) + ";";}
                          else{
                            System.out.println("Error! Type mismatch!");
                          }
                        }
                      

                    }
                    break;
                case 7 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:820:3: STRING variableName ASSIGNMENT_OP STRINGTOK ENDOFSTMT
                    {
                    match(input,STRING,FOLLOW_STRING_in_assignmentStatement1482); 

                    pushFollow(FOLLOW_variableName_in_assignmentStatement1484);
                    variableName81=variableName();

                    state._fsp--;


                    ASSIGNMENT_OP83=(Token)match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1486); 

                    STRINGTOK82=(Token)match(input,STRINGTOK,FOLLOW_STRINGTOK_in_assignmentStatement1488); 

                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_assignmentStatement1490); 


                        if(!symbolTable.containsKey((variableName81!=null?input.toString(variableName81.start,variableName81.stop):null))){
                        String[] s = new String[2];
                        s[0] = "string";
                        s[1] = (STRINGTOK82!=null?STRINGTOK82.getText():null);
                        symbolTable.put((variableName81!=null?input.toString(variableName81.start,variableName81.stop):null), s);
                        val =  (variableName81!=null?input.toString(variableName81.start,variableName81.stop):null) + (ASSIGNMENT_OP83!=null?ASSIGNMENT_OP83.getText():null) + (STRINGTOK82!=null?STRINGTOK82.getText():null) + ";";}
                        else
                          System.out.println("Error! You are trying to redefine a previously defined variable " + (variableName81!=null?input.toString(variableName81.start,variableName81.stop):null));
                      

                    }
                    break;
                case 8 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:832:3: STRING variableName ENDOFSTMT
                    {
                    match(input,STRING,FOLLOW_STRING_in_assignmentStatement1502); 

                    pushFollow(FOLLOW_variableName_in_assignmentStatement1504);
                    variableName84=variableName();

                    state._fsp--;


                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_assignmentStatement1506); 


                        if(symbolTable.containsKey((variableName84!=null?input.toString(variableName84.start,variableName84.stop):null)))
                          System.out.println("Error! You are trying to redefine a previously defined variable " + (variableName84!=null?input.toString(variableName84.start,variableName84.stop):null));
                        else {
                          String[] s = new String[2];
                          s[0] = "string";
                          s[1] = null;
                          symbolTable.put((variableName84!=null?input.toString(variableName84.start,variableName84.stop):null), s);
                         // val = "String " + (variableName84!=null?input.toString(variableName84.start,variableName84.stop):null) + ";";
                         val = "";
                        }
                      

                    }
                    break;
                case 9 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:846:3: variableName ASSIGNMENT_OP STRINGTOK ENDOFSTMT
                    {
                    pushFollow(FOLLOW_variableName_in_assignmentStatement1518);
                    variableName85=variableName();

                    state._fsp--;


                    match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1520); 

                    STRINGTOK86=(Token)match(input,STRINGTOK,FOLLOW_STRINGTOK_in_assignmentStatement1522); 

                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_assignmentStatement1524); 


                        if(!symbolTable.containsKey((variableName85!=null?input.toString(variableName85.start,variableName85.stop):null)))
                          System.out.println("Error! Undefined vairable!" + (variableName85!=null?input.toString(variableName85.start,variableName85.stop):null));
                        else {
                         if(symbolTable.get((variableName85!=null?input.toString(variableName85.start,variableName85.stop):null))[TYPE].equals("date")){
                          String[] s = new String[2];
                          s[0] = "string";
                          s[1] = null;
                          symbolTable.put((variableName85!=null?input.toString(variableName85.start,variableName85.stop):null), s);
                          val = (variableName85!=null?input.toString(variableName85.start,variableName85.stop):null) + "=" + (STRINGTOK86!=null?STRINGTOK86.getText():null) + ";";}
                          else{
                             System.out.println("Error! Type mismatch!");
                          }
                        }
                      

                    }
                    break;
                case 10 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:863:4: v1= variableName ASSIGNMENT_OP v2= variableName ENDOFSTMT
                    {
                    pushFollow(FOLLOW_variableName_in_assignmentStatement1539);
                    v1=variableName();

                    state._fsp--;


                    match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1541); 

                    pushFollow(FOLLOW_variableName_in_assignmentStatement1545);
                    v2=variableName();

                    state._fsp--;


                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_assignmentStatement1547); 


                        if(symbolTable.containsKey((v1!=null?input.toString(v1.start,v1.stop):null)) && symbolTable.containsKey((v2!=null?input.toString(v2.start,v2.stop):null))){
                              if(symbolTable.get((v1!=null?input.toString(v1.start,v1.stop):null))[TYPE].equals(symbolTable.get((v2!=null?input.toString(v2.start,v2.stop):null))[TYPE])){
                                if(symbolTable.get((v2!=null?input.toString(v2.start,v2.stop):null))[VALUE] == null){
                                  val = (v1!=null?input.toString(v1.start,v1.stop):null) + " = " + (v2!=null?input.toString(v2.start,v2.stop):null) + ";" ;
                              }
                              else{
                                  System.out.println("Error!  No value assigned to variable!");
                                }
                              }
                              else{
                                System.out.println("Error! Type Mismatch");
                              }
                          }
                          else{
                            System.out.println("Error! Undefined variable name");
                        }
                      

                    }
                    break;
                case 11 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:883:3: variableName ASSIGNMENT_OP READT LEFTPARAN RIGHTPARAN ENDOFSTMT
                    {
                    pushFollow(FOLLOW_variableName_in_assignmentStatement1559);
                    variableName87=variableName();

                    state._fsp--;


                    match(input,ASSIGNMENT_OP,FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1561); 

                    match(input,READT,FOLLOW_READT_in_assignmentStatement1563); 

                    match(input,LEFTPARAN,FOLLOW_LEFTPARAN_in_assignmentStatement1565); 

                    match(input,RIGHTPARAN,FOLLOW_RIGHTPARAN_in_assignmentStatement1567); 

                    match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_assignmentStatement1569); 


                        if(symbolTable.containsKey((variableName87!=null?input.toString(variableName87.start,variableName87.stop):null))){
                          String[] s = new String[2];
                          s = symbolTable.get((variableName87!=null?input.toString(variableName87.start,variableName87.stop):null));
                          s[1] = "";
                          symbolTable.put((variableName87!=null?input.toString(variableName87.start,variableName87.stop):null), s);
                       //   val = "String " + (variableName87!=null?input.toString(variableName87.start,variableName87.stop):null) + ";";
                                 // val = (variableName87!=null?input.toString(variableName87.start,variableName87.stop):null) + " = s.next();";
                                 val ="_input=_s.next();\n";
                                 if(s[0].equalsIgnoreCase("string"))
                                 {
                                 val+=(variableName87!=null?input.toString(variableName87.start,variableName87.stop):null)+"=_input;\n";
                                 }
                                 else if(s[0].equalsIgnoreCase("int"))
                                 {
                                 val+=(variableName87!=null?input.toString(variableName87.start,variableName87.stop):null)+"=Integer.parseInt(_input);\n";
                                 }
                                 else if(s[0].equalsIgnoreCase("date"))
                                 {
                                    
                                    val += "_date = _input" + " + \"/" + year + "\"; \n" +
                                    "try{ \n" +
                                      (variableName87!=null?input.toString(variableName87.start,variableName87.stop):null) +" = _sdf.parse(_date); \n" +
                                " } catch (ParseException _e) { \n" +
                                "} \n" +
                                "if(!_sdf.format(" + (variableName87!=null?input.toString(variableName87.start,variableName87.stop):null) + ").equals(_date)){ \n" +
                                " System.out.println(\"ERROR in date format!!!!\"); \n" +
                                " } \n "
                                ;
                                }
                                
                         
                        }
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "assignmentStatement"



    // $ANTLR start "runCommand"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:920:1: runCommand returns [String val] : GENERATEOUTFIT LEFTPARAN parameters RIGHTPARAN ENDOFSTMT ;
    public final String runCommand() throws RecognitionException {
        String val = null;


        String parameters88 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:921:3: ( GENERATEOUTFIT LEFTPARAN parameters RIGHTPARAN ENDOFSTMT )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:922:3: GENERATEOUTFIT LEFTPARAN parameters RIGHTPARAN ENDOFSTMT
            {
            match(input,GENERATEOUTFIT,FOLLOW_GENERATEOUTFIT_in_runCommand1592); 

            match(input,LEFTPARAN,FOLLOW_LEFTPARAN_in_runCommand1594); 

            pushFollow(FOLLOW_parameters_in_runCommand1596);
            parameters88=parameters();

            state._fsp--;


            match(input,RIGHTPARAN,FOLLOW_RIGHTPARAN_in_runCommand1598); 

            match(input,ENDOFSTMT,FOLLOW_ENDOFSTMT_in_runCommand1600); 


                String paramTemp = "";
                if(parameters88 != ""){
                String[] params = parameters88.split(",");
                if(params.length>2){
                  System.out.println("Error! Too many parameters in generateOutfit function!");
                }
                else
                  for(int i = 0; i< params.length;i++){
                    if(symbolTable.containsKey(params[i])){
                      if(symbolTable.get(params[i])[TYPE].equals("date")){
                        if(paramTemp == "") paramTemp = params[i];
                        else paramTemp+= "," + params[i];
                      }
                      else{System.out.println("Error! Incorrect datatype parameter in generateOutfit function!");}}
                  }
                }
                String s = new String("generateOutfit(" + paramTemp + ")");
                mainFuncString.add(s);
                val = "_backEnd.generateOutfit(" + paramTemp + ");";
              

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "runCommand"



    // $ANTLR start "parameters"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:946:1: parameters returns [String val] : ( parameter parameters1 |);
    public final String parameters() throws RecognitionException {
        String val = null;


        String parameter89 =null;

        String parameters190 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:947:3: ( parameter parameters1 |)
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( (LA21_0==IDENTIFIER) ) {
                alt21=1;
            }
            else if ( (LA21_0==RIGHTPARAN) ) {
                alt21=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 21, 0, input);

                throw nvae;

            }
            switch (alt21) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:948:3: parameter parameters1
                    {
                    pushFollow(FOLLOW_parameter_in_parameters1623);
                    parameter89=parameter();

                    state._fsp--;


                    pushFollow(FOLLOW_parameters1_in_parameters1625);
                    parameters190=parameters1();

                    state._fsp--;



                        val = parameter89 + parameters190;
                    //    val = val.substring(0, val.length()-2);
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:954:3: 
                    {

                        val = "";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "parameters"



    // $ANTLR start "parameters1"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:959:1: parameters1 returns [String val] : ( ',' parameter p1= parameters1 |);
    public final String parameters1() throws RecognitionException {
        String val = null;


        String p1 =null;

        String parameter91 =null;


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:960:3: ( ',' parameter p1= parameters1 |)
            int alt22=2;
            int LA22_0 = input.LA(1);

            if ( (LA22_0==59) ) {
                alt22=1;
            }
            else if ( (LA22_0==RIGHTPARAN) ) {
                alt22=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 22, 0, input);

                throw nvae;

            }
            switch (alt22) {
                case 1 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:961:3: ',' parameter p1= parameters1
                    {
                    match(input,59,FOLLOW_59_in_parameters11656); 

                    pushFollow(FOLLOW_parameter_in_parameters11658);
                    parameter91=parameter();

                    state._fsp--;


                    pushFollow(FOLLOW_parameters1_in_parameters11662);
                    p1=parameters1();

                    state._fsp--;



                        val = "," + parameter91 + p1;
                      

                    }
                    break;
                case 2 :
                    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:966:3: 
                    {

                        val = "";
                      

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "parameters1"



    // $ANTLR start "parameter"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:971:1: parameter returns [String val] : IDENTIFIER ;
    public final String parameter() throws RecognitionException {
        String val = null;


        Token IDENTIFIER92=null;

        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:972:3: ( IDENTIFIER )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:972:5: IDENTIFIER
            {
            IDENTIFIER92=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_parameter1693); 

             
                  if(symbolTable.containsKey((IDENTIFIER92!=null?IDENTIFIER92.getText():null))){val = (IDENTIFIER92!=null?IDENTIFIER92.getText():null);}
                  else System.out.println("Error! Undefined variable name");
                

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return val;
    }
    // $ANTLR end "parameter"


    public static class wardrobeName_return extends ParserRuleReturnScope {
    };


    // $ANTLR start "wardrobeName"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:1004:1: wardrobeName : IDENTIFIER ;
    public final GrammarParser.wardrobeName_return wardrobeName() throws RecognitionException {
        GrammarParser.wardrobeName_return retval = new GrammarParser.wardrobeName_return();
        retval.start = input.LT(1);


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:1004:15: ( IDENTIFIER )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:1004:18: IDENTIFIER
            {
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_wardrobeName1737); 

            }

            retval.stop = input.LT(-1);


        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "wardrobeName"


    public static class prefRange_return extends ParserRuleReturnScope {
    };


    // $ANTLR start "prefRange"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:1006:1: prefRange : ( '1' | '2' | '3' );
    public final GrammarParser.prefRange_return prefRange() throws RecognitionException {
        GrammarParser.prefRange_return retval = new GrammarParser.prefRange_return();
        retval.start = input.LT(1);


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:1006:12: ( '1' | '2' | '3' )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:
            {
            if ( (input.LA(1) >= 60 && input.LA(1) <= 62) ) {
                input.consume();
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

            retval.stop = input.LT(-1);


        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "prefRange"


    public static class value_return extends ParserRuleReturnScope {
    };


    // $ANTLR start "value"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:1008:1: value : IDENTIFIER ;
    public final GrammarParser.value_return value() throws RecognitionException {
        GrammarParser.value_return retval = new GrammarParser.value_return();
        retval.start = input.LT(1);


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:1008:8: ( IDENTIFIER )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:1008:11: IDENTIFIER
            {
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_value1769); 

            }

            retval.stop = input.LT(-1);


        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "value"


    public static class variableName_return extends ParserRuleReturnScope {
    };


    // $ANTLR start "variableName"
    // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:1010:1: variableName : IDENTIFIER ;
    public final GrammarParser.variableName_return variableName() throws RecognitionException {
        GrammarParser.variableName_return retval = new GrammarParser.variableName_return();
        retval.start = input.LT(1);


        try {
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:1010:15: ( IDENTIFIER )
            // C:\\Users\\Kunal\\PLT\\PLT-W2W\\src\\com\\plt\\w2w\\Grammar.g:1010:18: IDENTIFIER
            {
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_variableName1781); 

            }

            retval.stop = input.LT(-1);


        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return retval;
    }
    // $ANTLR end "variableName"

    // Delegated rules


 

    public static final BitSet FOLLOW_wardrobeCreation_in_start49 = new BitSet(new long[]{0x0018000000000000L});
    public static final BitSet FOLLOW_mainOptional_in_start51 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_mainProgram_in_start63 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_mainProgram_in_mainOptional90 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_createStatement_in_wardrobeCreation122 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_LEFTCURLY_in_wardrobeCreation124 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_items_in_wardrobeCreation126 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_RIGHTCURLY_in_wardrobeCreation128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_CREATET_in_createStatement152 = new BitSet(new long[]{0x0020000000000000L});
    public static final BitSet FOLLOW_WARDROBET_in_createStatement154 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_wardrobeName_in_createStatement156 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_createStatement158 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_item_in_items180 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_items1_in_items184 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_item_in_items1204 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_items1_in_items1207 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_LEFTCURLY_in_item234 = new BitSet(new long[]{0x0000000010000000L});
    public static final BitSet FOLLOW_type_in_item238 = new BitSet(new long[]{0x0080141110000100L});
    public static final BitSet FOLLOW_category_in_item240 = new BitSet(new long[]{0x0080141100000100L});
    public static final BitSet FOLLOW_weight_in_item242 = new BitSet(new long[]{0x0000141100000100L});
    public static final BitSet FOLLOW_color_in_item244 = new BitSet(new long[]{0x0000141100000000L});
    public static final BitSet FOLLOW_shade_in_item246 = new BitSet(new long[]{0x0000041100000000L});
    public static final BitSet FOLLOW_maker_in_item248 = new BitSet(new long[]{0x0000041000000000L});
    public static final BitSet FOLLOW_preference_in_item250 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_RIGHTCURLY_in_item252 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ITEMT_in_type275 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_type277 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_value_in_type279 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_type281 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ITEMT_in_category308 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_category310 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_value_in_category312 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_category314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_WEIGHT_in_weight349 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_weight351 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_value_in_weight353 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_weight355 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_COLORT_in_color390 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_color392 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_value_in_color394 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_color396 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SHADET_in_shade429 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_shade431 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_value_in_shade433 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_shade435 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_MAKERT_in_maker468 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_maker470 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_value_in_maker472 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_maker474 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PREFERENCET_in_preference507 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_preference509 = new BitSet(new long[]{0x7000000000000000L});
    public static final BitSet FOLLOW_prefRange_in_preference511 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_preference513 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_header_in_mainProgram547 = new BitSet(new long[]{0x0010000000000000L});
    public static final BitSet FOLLOW_mainDecl_in_mainProgram549 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_LEFTCURLY_in_mainProgram551 = new BitSet(new long[]{0x800081A00B401000L});
    public static final BitSet FOLLOW_lines_in_mainProgram553 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_runCommand_in_mainProgram555 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_RIGHTCURLY_in_mainProgram557 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_USET_in_header580 = new BitSet(new long[]{0x0020000000000000L});
    public static final BitSet FOLLOW_WARDROBET_in_header582 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_wardrobeNames_in_header584 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_header586 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_wardrobeName_in_wardrobeNames620 = new BitSet(new long[]{0x0400000000000000L});
    public static final BitSet FOLLOW_wardrobeNames1_in_wardrobeNames622 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_wardrobeNames1647 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_wardrobeName_in_wardrobeNames1649 = new BitSet(new long[]{0x0400000000000000L});
    public static final BitSet FOLLOW_wardrobeNames1_in_wardrobeNames1653 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_VOID_in_mainDecl685 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_MAIN_in_mainDecl687 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_LEFTPARAN_in_mainDecl689 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_RIGHTPARAN_in_mainDecl691 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_line_in_lines718 = new BitSet(new long[]{0x800081A00B001000L});
    public static final BitSet FOLLOW_lines_in_lines722 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_assignmentStatement_in_line754 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_63_in_line767 = new BitSet(new long[]{0x0000000000200000L});
    public static final BitSet FOLLOW_GARMENT_in_line769 = new BitSet(new long[]{0x0200000000000000L});
    public static final BitSet FOLLOW_57_in_line771 = new BitSet(new long[]{0x0020000000000000L});
    public static final BitSet FOLLOW_WARDROBET_in_line773 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_LEFTCURLY_in_line775 = new BitSet(new long[]{0x800085A00B001000L});
    public static final BitSet FOLLOW_lines_in_line777 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_RIGHTCURLY_in_line779 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IF_in_line794 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_expr_in_line796 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_LEFTCURLY_in_line798 = new BitSet(new long[]{0x800085A00B001000L});
    public static final BitSet FOLLOW_lines_in_line800 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_RIGHTCURLY_in_line802 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_optional_tail_in_line804 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_REJTOK_in_line818 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_line820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_READT_in_line834 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_LEFTPARAN_in_line836 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_RIGHTPARAN_in_line838 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_line840 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PRINTT_in_line854 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_LEFTPARAN_in_line856 = new BitSet(new long[]{0x0001000001000000L});
    public static final BitSet FOLLOW_printargs_in_line858 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_RIGHTPARAN_in_line860 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_line862 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_printarg_in_printargs891 = new BitSet(new long[]{0x0400000000000000L});
    public static final BitSet FOLLOW_printargs1_in_printargs893 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_printargs1926 = new BitSet(new long[]{0x0001000000000000L});
    public static final BitSet FOLLOW_STRINGTOK_in_printargs1928 = new BitSet(new long[]{0x0400000000000000L});
    public static final BitSet FOLLOW_printargs1_in_printargs1932 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_printargs1954 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_printargs1956 = new BitSet(new long[]{0x0400000000000000L});
    public static final BitSet FOLLOW_printargs1_in_printargs1960 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_variableName_in_printarg1025 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_STRINGTOK_in_printarg1043 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ELSE_in_optional_tail1072 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_LEFTCURLY_in_optional_tail1074 = new BitSet(new long[]{0x800085A00B001000L});
    public static final BitSet FOLLOW_lines_in_optional_tail1076 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_RIGHTCURLY_in_optional_tail1078 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_conditions_in_expr1109 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_LEFTPARAN_in_conditions1132 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_conditions_in_conditions1136 = new BitSet(new long[]{0x0000000800000020L});
    public static final BitSet FOLLOW_beta_in_conditions1138 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_LEFTPARAN_in_conditions1148 = new BitSet(new long[]{0x0001000201000800L});
    public static final BitSet FOLLOW_condition_in_conditions1150 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_RIGHTPARAN_in_conditions1152 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_AND_in_beta1177 = new BitSet(new long[]{0x0001000201000800L});
    public static final BitSet FOLLOW_condition_in_beta1179 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_RIGHTPARAN_in_beta1181 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_OR_in_beta1191 = new BitSet(new long[]{0x0001000201000800L});
    public static final BitSet FOLLOW_condition_in_beta1193 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_RIGHTPARAN_in_beta1195 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NUMBER_in_condition1224 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CONDITIONAL_OP_in_condition1226 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_NUMBER_in_condition1230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_variableName_in_condition1249 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CONDITIONAL_OP_in_condition1251 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_condition1255 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NUMBER_in_condition1267 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CONDITIONAL_OP_in_condition1269 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_condition1271 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_variableName_in_condition1283 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CONDITIONAL_OP_in_condition1285 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_NUMBER_in_condition1287 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DATE_in_condition1297 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CONDITIONAL_OP_in_condition1299 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_condition1301 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_variableName_in_condition1313 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CONDITIONAL_OP_in_condition1315 = new BitSet(new long[]{0x0000000000000800L});
    public static final BitSet FOLLOW_DATE_in_condition1317 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_STRINGTOK_in_condition1330 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CONDITIONAL_OP_in_condition1332 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_condition1334 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_variableName_in_condition1347 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CONDITIONAL_OP_in_condition1349 = new BitSet(new long[]{0x0001000000000000L});
    public static final BitSet FOLLOW_STRINGTOK_in_condition1351 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DATET_in_assignmentStatement1376 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1378 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1380 = new BitSet(new long[]{0x0000000000000800L});
    public static final BitSet FOLLOW_DATE_in_assignmentStatement1382 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_assignmentStatement1384 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DATET_in_assignmentStatement1396 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1398 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_assignmentStatement1400 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1412 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1414 = new BitSet(new long[]{0x0000000000000800L});
    public static final BitSet FOLLOW_DATE_in_assignmentStatement1416 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_assignmentStatement1418 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INT_in_assignmentStatement1428 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1430 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1432 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_NUMBER_in_assignmentStatement1434 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_assignmentStatement1436 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INT_in_assignmentStatement1448 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1450 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_assignmentStatement1452 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1464 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1466 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_NUMBER_in_assignmentStatement1468 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_assignmentStatement1470 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_STRING_in_assignmentStatement1482 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1484 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1486 = new BitSet(new long[]{0x0001000000000000L});
    public static final BitSet FOLLOW_STRINGTOK_in_assignmentStatement1488 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_assignmentStatement1490 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_STRING_in_assignmentStatement1502 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1504 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_assignmentStatement1506 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1518 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1520 = new BitSet(new long[]{0x0001000000000000L});
    public static final BitSet FOLLOW_STRINGTOK_in_assignmentStatement1522 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_assignmentStatement1524 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1539 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1541 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1545 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_assignmentStatement1547 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_variableName_in_assignmentStatement1559 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_ASSIGNMENT_OP_in_assignmentStatement1561 = new BitSet(new long[]{0x0000008000000000L});
    public static final BitSet FOLLOW_READT_in_assignmentStatement1563 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_LEFTPARAN_in_assignmentStatement1565 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_RIGHTPARAN_in_assignmentStatement1567 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_assignmentStatement1569 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_GENERATEOUTFIT_in_runCommand1592 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_LEFTPARAN_in_runCommand1594 = new BitSet(new long[]{0x0000080001000000L});
    public static final BitSet FOLLOW_parameters_in_runCommand1596 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_RIGHTPARAN_in_runCommand1598 = new BitSet(new long[]{0x0000000000010000L});
    public static final BitSet FOLLOW_ENDOFSTMT_in_runCommand1600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_parameter_in_parameters1623 = new BitSet(new long[]{0x0800000000000000L});
    public static final BitSet FOLLOW_parameters1_in_parameters1625 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_59_in_parameters11656 = new BitSet(new long[]{0x0000000001000000L});
    public static final BitSet FOLLOW_parameter_in_parameters11658 = new BitSet(new long[]{0x0800000000000000L});
    public static final BitSet FOLLOW_parameters1_in_parameters11662 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENTIFIER_in_parameter1693 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENTIFIER_in_wardrobeName1737 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENTIFIER_in_value1769 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENTIFIER_in_variableName1781 = new BitSet(new long[]{0x0000000000000002L});

}